From: Simon Marlow Date: Wed, 9 Jul 2008 13:54:47 +0000 (+0000) Subject: rts_evalStableIO: start the new thread in blocked mode X-Git-Tag: Before_cabalised-GHC~46 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=366614a9a33b30c2273d2c63b3435259f729314b rts_evalStableIO: start the new thread in blocked mode --- 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);