Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Mandrake 9.2 on Compaq Armada E500
Description
The ThreadControl implimentation in org.apache.excalibur.thread.impl.DefaultThreadControl has a timing bug in the join() function. There is a small timing window between the time the worker thread has finished executing and before a call to the finish() method of the ThreadControl is made. This can cause the threads waiting on a join(0) to never wake-up.
The patch is simple: instead of delegating the join() to the m_thread, do a wait(). The finish() method of the org.apache.excalibur.thread.impl.DefaultThreadControl does a notifyAll() and that should wake up the calling thread.