* Jean-Yves Lefort -- Sunday 05 March 2006 03:06:
> The attached patch fixes a crash which occurs on exit.

Anyone else seeing this "crash" (which really is a deliberate abort())?
Or is it a BSD feature?



> 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.



> +FGMetarEnvironmentCtrl::stop()
> +{
> +    request_queue.push( string() );    // ask metar thread to terminate
> +    thread->join(); 
> +}

This doesn't make sense to me. You want to push an empty string
for the wait() to function as cancellation point? It should work
as such without that.

m.   :-/


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to