summaryrefslogtreecommitdiff
path: root/rts/sm/MarkWeak.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/sm/MarkWeak.c')
-rw-r--r--rts/sm/MarkWeak.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c
index e65c176c0a..d4d708e72c 100644
--- a/rts/sm/MarkWeak.c
+++ b/rts/sm/MarkWeak.c
@@ -270,8 +270,10 @@ 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
+ // uninterruptible FFI call.
ASSERT(t->blocked_exceptions == END_BLOCKED_EXCEPTIONS_QUEUE
+ || t->why_blocked == BlockedOnCCall
|| (t->flags & TSO_BLOCKEX));
if (tmp == NULL) {