Synchronizing to the termination of a thread
QNX SDP8.0Getting Started with the QNX OSDeveloperUser
I mentioned that there were a number of problems with the simplistic code sample initially shown. Another problem with it is that main() starts up a bunch of threads and then displays the results. How does the function know when it's safe to display the results?
To have the main() function poll for completion
would defeat the purpose of a realtime operating system:
int main (int argc, char **argv)
{
...
// start threads as before
while (num_lines_completed < num_x_lines) {
sleep (1);
}
}
Don't even consider writing code like this!
There are two elegant solutions to this problem: pthread_join() and pthread_barrier_wait().
Page updated: