[project @ 2004-05-06 12:20:04 by wolfgang]
authorwolfgang <unknown>
Thu, 6 May 2004 12:20:06 +0000 (12:20 +0000)
committerwolfgang <unknown>
Thu, 6 May 2004 12:20:06 +0000 (12:20 +0000)
commitb44a2c876bd0c6bfc1b7f092fed6a29f6e4452e8
treecce69eec9460ac2d9e5a0d3a6ea2d0409954f67a
parent484efd8a764aa433c55051e34adf2a9c9f3fca21
[project @ 2004-05-06 12:20:04 by wolfgang]
Threaded RTS: Fix a deadlock situation

The flag startingWorkerThread that is used by startSchedulerTaskIfNecessary
(in Schedule.c) has to be reset if startTask (in Task.c) decides not to
start another task after all (if a task is already waiting).
When the flag isn't reset, this leads to a deadlock the next time a new
worker thread is actually needed.

MERGE TO STABLE
ghc/rts/Schedule.c
ghc/rts/Task.c
ghc/rts/Task.h