From 366614a9a33b30c2273d2c63b3435259f729314b Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 9 Jul 2008 13:54:47 +0000 Subject: [PATCH] rts_evalStableIO: start the new thread in blocked mode --- rts/RtsAPI.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rts/RtsAPI.c b/rts/RtsAPI.c index 716b4a2..2496af3 100644 --- a/rts/RtsAPI.c +++ b/rts/RtsAPI.c @@ -491,6 +491,9 @@ rts_evalStableIO (Capability *cap, HsStablePtr s, /*out*/HsStablePtr *ret) p = (StgClosure *)deRefStablePtr(s); tso = createStrictIOThread(cap, RtsFlags.GcFlags.initialStkSize, p); + // async exceptions are always blocked by default in the created + // thread. See #1048. + tso->flags |= TSO_BLOCKEX | TSO_INTERRUPTIBLE; cap = scheduleWaitThread(tso,&r,cap); stat = rts_getSchedStatus(cap); -- 1.7.10.4