chrille_p
asked on
Create a block / wait function?
I am looking for a way to create a function that, like the sockets accept function,
blocks / waits untill a specific variable is set or a specific function is called.
At the moment I am using the very system expensive code:
while(!input);
I need a function that can be called inside a thread procedure to keep the thread from consuming all of the processors power.
Any ideas?
blocks / waits untill a specific variable is set or a specific function is called.
At the moment I am using the very system expensive code:
while(!input);
I need a function that can be called inside a thread procedure to keep the thread from consuming all of the processors power.
Any ideas?
OS/2 you have to use DosSleep, and *NIX it is sleep (as far as i remember).
Regards, Alex
Regards, Alex
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Im not looking for a function that waits for a couple of seconds.
What I want is a thread-procedure (A) that waits untill function (B) is called...
I could use sleep() in my loop and check a flag every n second, but that would make
the reaction of my function slow. I want it to stop waiting and continue its work
directly when (B) is called.
/Chrille
What I want is a thread-procedure (A) that waits untill function (B) is called...
I could use sleep() in my loop and check a flag every n second, but that would make
the reaction of my function slow. I want it to stop waiting and continue its work
directly when (B) is called.
/Chrille
ASKER
WaitForSingleObject is perfect.
Thanks!
/Chrille
Thanks!
/Chrille
Depending on the OS, there may be a Sleep() function that is calibrated in milliseconds.
Otherwise you could find some API, any API, that will do a task-switch for you.
On Windows that puts your thread to sleep for about 20-30 milliseconds, a nice ballpark sleep time.
Otherwise you could find some API, any API, that will do a task-switch for you.
On Windows that puts your thread to sleep for about 20-30 milliseconds, a nice ballpark sleep time.
>> Im not looking for a function that waits for a couple of seconds.
Ok, but before using
while(!input);
you should have
while(!input) { sleep(1); }
>> What I want is a thread-procedure (A) that waits untill function (B) is called...
You could use a mutex that gets locked by your main thread, then your thread is waiting on the mutex to be unlocked, what is done at the beginning of function B .
What OS are you working on?
Regards, Alex
Ok, but before using
while(!input);
you should have
while(!input) { sleep(1); }
>> What I want is a thread-procedure (A) that waits untill function (B) is called...
You could use a mutex that gets locked by your main thread, then your thread is waiting on the mutex to be unlocked, what is done at the beginning of function B .
What OS are you working on?
Regards, Alex
Sleep(1); // wait 1 millisecond
in your loop.
Regards, Alex