X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.c;h=f6a9ef2c49b9325a54623f39b00680a3ee89210e;hb=bac10a99aba7d223d70b93f398d5239a166e929f;hp=0850749b36e3d660cc9d57e9e2f82c91a259e217;hpb=83d563cb9ede0ba792836e529b1e2929db926355;p=ghc-hetmet.git diff --git a/rts/Schedule.c b/rts/Schedule.c index 0850749..f6a9ef2 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -1817,16 +1817,16 @@ resumeThread (void *task_) traceEventRunThread(cap, tso); + /* Reset blocking status */ + tso->why_blocked = NotBlocked; + if ((tso->flags & TSO_BLOCKEX) == 0) { // avoid locking the TSO if we don't have to if (tso->blocked_exceptions != END_BLOCKED_EXCEPTIONS_QUEUE) { - awakenBlockedExceptionQueue(cap,tso); + maybePerformBlockedException(cap,tso); } } - /* Reset blocking status */ - tso->why_blocked = NotBlocked; - cap->r.rCurrentTSO = tso; cap->in_haskell = rtsTrue; errno = saved_errno;