From: Jean-Yves L. <jyl...@br...> - 2006-03-05 02:06:15
|
Hi, The attached patch fixes a crash which occurs on exit. 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). Then the request_queue destructor is automatically invoked, but the metar thread is still waiting on fetcher->request_queue.pop(), with the SGBlockingQueue lock held. Destroying the locked mutex causes the crash: Assertion failed: (status == 0), function ~SGMutex, file /home/jylefort/test/simgear-head/include/simgear/threads/SGThread.hxx, line 227. Abort trap (core dumped) -- Jean-Yves Lefort jyl...@br... http://lefort.be.eu.org/ |