Re: How to wait for multiple threads simultaneously?



David Schwartz <davids@xxxxxxxxxxxxx> writes:

[...]

An even harder question, how can I wait for one thread's end and one
file descriptor(e.g STDIN_FILENO) to be readable simultaneously? -- If
either one of the two conditions becomes fulfilled, the other one must
quit its waiting status immediately as if no wait operation was
carried
out.

Have one thread wait for the thread's end and one thread wait for the
file descriptor. Have those threads signal a condition variable if the
event they are waiting for occurs.

If there was more than one thread to wait for, this approach
would double the amount of threads for no particular reason. Assuming
the reason to wait for the thread to terminate is not 'trying to
plaster over programming errors', ie 'restart it if it has crashed
again', causing each thread to inform 'some listener' that it has
stopped to work on whatever its task happened to be would be more
sensible. A simple way to do this would be to write the thread id to a
pipe immediatly before thread termination (at the expense of going
through the kernel for inter-thread communication). Using a
shared-memory message queue transporting 'event notifications', like
I/O-readiness of some file descriptor or termination of some thread
would be another option.

You can then spin on that condition variable.

To 'spin' on some lock would mean to busy-wait until it is free, eg

while (try_to_take(&lock) == FAILED);

.



Relevant Pages

  • Re: Liking for their skin color
    ... >> Advice about legal resources is acceptable, ... meaning of "termination" is intended when I say she can't give advice ... used in this house because my wife is a nurse and the term is what ... I don't deny that it might be a reason, but I don't accept it as *the* ...
    (alt.usage.english)
  • Re: NULLs: theoretical problems?
    ... The specific reason might or might not be of interest to the ... contracts table had a single column to store both termination date and ... the reason why the contract was terminated - I'm pretty sure that you'd ... termination date and the reason why the contract is NOT terminated in a ...
    (comp.databases.theory)
  • Re: World of Woodturners (WoW)
    ... That "termination" doesn't sound like a bad thing. ... haven't seen any reason on this NG to worry about it. ... And the pictures ARE awesome. ...
    (rec.crafts.woodturning)
  • Re: The "Kid Law" in Las Vegas
    ... employer can terminate an employee for any reason or no reason at all. ... At which point the court will ask the employer for the real REASON for termination, and you would be well served to have one if you wish to prevail. ... They cannot kick you out for ANY reason. ... And the owners have to obey the law. ...
    (alt.vacation.las-vegas)