X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FMarkWeak.c;h=aadd5757af4dceb15048cad375ac82bd6cfd727b;hb=fff1f6194c3c39de53cd645bda9865fb131b1c68;hp=e65c176c0a2027bf2628f042360df276b706a612;hpb=5d52d9b64c21dcf77849866584744722f8121389;p=ghc-hetmet.git diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c index e65c176..aadd575 100644 --- a/rts/sm/MarkWeak.c +++ b/rts/sm/MarkWeak.c @@ -270,8 +270,11 @@ static rtsBool tidyThreadList (generation *gen) // if the thread is not masking exceptions but there are // pending exceptions on its queue, then something has gone - // wrong: + // wrong. However, pending exceptions are OK if there is an + // FFI call. ASSERT(t->blocked_exceptions == END_BLOCKED_EXCEPTIONS_QUEUE + || t->why_blocked == BlockedOnCCall + || t->why_blocked == BlockedOnCCall_Interruptible || (t->flags & TSO_BLOCKEX)); if (tmp == NULL) {