On Mon, 6 Mar 2006 08:01:54 +0100 Melchior FRANZ <[EMAIL PROTECTED]> wrote:
> > In the FGMetarEnvironmentCtrl destructor, thread->cancel() causes the > > following thread->join() call to return without actually waiting on > > the thread (btw, thread->cancel() does not cause the thread to exit). > > It causes the thread to to be left at the next cancellation point, > that would be the wait() in the SGBlockingQueue::pop. So the guarded > mutex should automatically be unlocked and the thread left. That's > according to the documentation and works here. My initial assumption is wrong. Here's another one: pthread_cancel() does cause the thread to exit, but the C++ destructors are not invoked. The SGGuard destructor can therefore not unlock the mutex. -- Jean-Yves Lefort [EMAIL PROTECTED] http://lefort.be.eu.org/
pgpBI1B734S1V.pgp
Description: PGP signature