Multi threading?


 
Thread Tools Search this Thread
Top Forums Programming Multi threading?
# 1  
Old 05-29-2007
Multi threading?

I am not sure if multi threading is the correct term, but here is what I am trying to do. I have a while loop that displays the number 1, pauses, displays the number 2, pauses , displays the number 3 ad infinitum. It just keeps counting.

While the screen displays the sequence of numbers counting up, I also want to display a prompt that says;
"Start counting now from: "
The user can then enter a number and the counter will immediately stop its counting and start counting again from the number entered by the user.

For example if the counter display is up to 22, as soon as the user enters 128 the counter jumps to 128 then continues counting up from 128. The user then enters 5, the counter jumps to 5 then continues counting up from 5.

Thus I need a while loop and a getchar() function to be running at the same time without interfering with each other. Any ideas how I could do this?

Here is the code for my loop, I can't work out where to put the statement
number = getchar();
so it doesn't interfere with the loop and delivers the new value of number instantaneously:


/* backtest02.c */

#include <curses.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>

int number = 1;
void quitter(void);

void quitter (void)
{
clear();
mvprintw(2,10, "Quitting...");
refresh();
sleep(4);
endwin();
exit(1);
}

int main ( void )
{
initscr();

while(1)
{
mvprintw (5,5, "%d", number);
refresh();
number = number + 1 ;
sleep(1);
signal (SIGINT, quitter);
}

}
# 2  
Old 05-29-2007
select driven loop.....

Code:
static char buf[256];
char *p=buf;
long count;

while (1)  {
  fd_set fdr;
  struct timeval to;
  FD_ZERO(&fdr);
  FD_SET(0,&fdr);

   to.tv_sec=1;
   to.tv_usec=0;

   if (select(1,&fdr,NULL,NULL,&to)>0)
   { 
        if (FD_ISSET(0,&fdr))
        {
              char c;
             if (1==read(0,&c,1))
             {
                 *p++=c;
                 *p=0;
                  if (c=='\n') 
                  {
                      count=atol(buf);
                      p=buf;
                  }  
             }
        }
    }
    else
    {
         count++;
        printf("%ld\n",count);
    }
}


Last edited by porter; 05-29-2007 at 06:30 AM..
# 3  
Old 05-29-2007
Thanks for your effort. I must admit your code is a bit beyond my capabilities at the moment, however I will examine it and learn. I was hoping I could just slot a getchar() statement in somewhere and it would read a new integer for use in the loop. Apparently it is not that simple.
# 4  
Old 05-29-2007
Quote:
Originally Posted by enuenu
I could just slot a getchar() statement in somewhere and it would read a new integer for use in the loop. Apparently it is not that simple.
Um, it's already done, "read" is reading from stdin, when we get a newline then the atol() will convert the string into the new count.
# 5  
Old 05-29-2007
A typo in the code of Porter:

Code:
struct timeval tv;

must be:

Code:
struct timeval to;

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Multi threading in UNIX

Hi, Can we apply multi threading in Unix. I am using bash shell. We have a generic script to load the data to table based on file input. For each file there is an individual table to load. For each file found in directory I want to load the data in parallel to target table using ... (3 Replies)
Discussion started by: vedanta
3 Replies

2. UNIX for Beginners Questions & Answers

Does UNIX support multi-Threading ?

Not just background process running ... but im looking if unix has any multi-threading concept like in Java, C# ... if not present, can you pls share the nearest feature in unix that is close to multi-threaded concept (3 Replies)
Discussion started by: i4ismail
3 Replies

3. UNIX for Dummies Questions & Answers

Confusion over Multi Threading

Hi, I am trying to get my head round Multi Threading and I have a few queries to try and clear up my confusion Q1. Is multi threading a hardware / chip level concept, an OS level or an application level concept ? I am trying to work out where SMT architecture fits in. Q2. What's the multi... (3 Replies)
Discussion started by: jimthompson
3 Replies

4. Programming

Multi-threading

In this piece i implemented the gossip method. The first thread is invoked from inside the (msg is first sent from node -1 to 0 from main()) and the other threads are invoked from inside of the thread function itself. I used two mutexes and a condition variable to control the synchronization. ... (4 Replies)
Discussion started by: saman_glorious
4 Replies

5. Programming

Multi-threading

Hi, If we create 10 threads to invoke runQuery method at same time, Will queryProcessor will be overriden sometime or 10 different copies will be created? We are not using any sunchronzation mechnism in runQuery(). so there is not gurantee on QueryProcessor class variables right OR each 10... (1 Reply)
Discussion started by: jramesh1
1 Replies

6. Programming

Multi-threading-- calling same function through different threads

Sir, Can I call same function in the start routines of different Threads. I have created two different threads....and wanna call same function from both threads....is it possible??? Also can I fork inside a thread??? (1 Reply)
Discussion started by: arunchaudhary19
1 Replies

7. Programming

Regarding Multi-Threading

Hi All, Here's my question I have a 385 MB file containing 5,000,000 records. I need to read from the file and load into a table. Initially i thought of doing it in a single thread (execution of a single program) but when calculated accounted 16 hours of time on a standard benchmark. Hence... (5 Replies)
Discussion started by: matrixmadhan
5 Replies

8. Programming

Multi threading using fork

Hi, I have written a code which will run a set of process using fork. I want to know from You how can i start another job when one of my job in my loop is completed My code is #include<stdio.h> #include<ctype.h> main() { int pid,cid; ChildProcess(); ... (1 Reply)
Discussion started by: sureshraju_ma
1 Replies

9. Programming

Multi-threading questions

I've been doing some reading lately about threading (Posix threads) and I'm really curious about a couple things that I've read. I'm not sure if many people here have threading experience, but I thought it would be nice to be able to discuss some questions about it. (For the record, I did... (1 Reply)
Discussion started by: DreamWarrior
1 Replies

10. Programming

Multi threading using posix thread library

hi all, can anyone tell me some good site for the mutithreading tutorials, its application, and some code examples. -sushil (2 Replies)
Discussion started by: shushilmore
2 Replies
Login or Register to Ask a Question