
Serguei Kolos wrote: [...]
This is shame. That's why I don't understand why Boost.Thread does not support semaphores anymore.
How about (quoting C++ std) "The common subset of the C and C++ languages consists of all declarations, definitions, and expressions that may appear in a well formed C++ program and also in a conforming C program. A POF (``plain old function'') is a function that uses only features from this common subset, and that does not directly or indirectly use any function that is not a POF. All signal handlers shall have C linkage. A POF that could be used as a signal handler in a conforming C program does not produce undefined behavior when used as a signal handler in a C++ program. The behavior of any other function used as a signal handler in a C++ program is implementation defined." Implementation defined is not good for boost, oder? ;-) Get rid of async signal handling. Use SIGEV_THREAD and/or sig{timed}wait{info}()) and dedicated signal handling thread(s). As for synchronous signals, use SEH-like implementation defined EH extensions to handle them in structured fashion. regards, alexander.