Commit f4b83744 authored by Simon Marlow's avatar Simon Marlow
Browse files

disable an incorrect ASSERTion in the non-THREADED_RTS case (bug #1067)

parent e3dd39bf
......@@ -1768,13 +1768,14 @@ scheduleHandleThreadBlocked( StgTSO *t
// has tidied up its stack and placed itself on whatever queue
// it needs to be on.
#if !defined(THREADED_RTS)
ASSERT(t->why_blocked != NotBlocked);
// This might not be true under THREADED_RTS: we don't have
// exclusive access to this TSO, so someone might have
// woken it up by now. This actually happens: try
// ASSERT(t->why_blocked != NotBlocked);
// Not true: for example,
// - in THREADED_RTS, the thread may already have been woken
// up by another Capability. This actually happens: try
// conc023 +RTS -N2.
#endif
// - the thread may have woken itself up already, because
// threadPaused() might have raised a blocked throwTo
// exception, see maybePerformBlockedException().
#ifdef DEBUG
if (traceClass(DEBUG_sched)) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment