diff options
author | Simon Marlow <marlowsd@gmail.com> | 2010-03-29 14:46:13 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2010-03-29 14:46:13 +0000 |
commit | 848797ebb9b60cf9c8a004c97afd008f5325c75f (patch) | |
tree | 155a9fc6a4495d06694cc4956dc4461179fe5d7c /rts/Messages.c | |
parent | 1373cd3085b8dec456e6118c58e940718cb9d559 (diff) | |
download | haskell-848797ebb9b60cf9c8a004c97afd008f5325c75f.tar.gz |
change throwTo to use tryWakeupThread rather than unblockOne
Diffstat (limited to 'rts/Messages.c')
-rw-r--r-- | rts/Messages.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/rts/Messages.c b/rts/Messages.c index 2b40f76e93..6a7c64de58 100644 --- a/rts/Messages.c +++ b/rts/Messages.c @@ -114,11 +114,9 @@ loop: switch (r) { case THROWTO_SUCCESS: - ASSERT(t->source->sp[0] == (StgWord)&stg_block_throwto_info); - t->source->sp += 3; - unblockOne(cap, t->source); // this message is done - unlockClosure((StgClosure*)m, &stg_IND_info); + unlockClosure((StgClosure*)m, &stg_MSG_NULL_info); + tryWakeupThread(cap, t->source); break; case THROWTO_BLOCKED: // unlock the message @@ -137,7 +135,7 @@ loop: } return; } - else if (i == &stg_IND_info) + else if (i == &stg_IND_info || i == &stg_MSG_NULL_info) { // message was revoked return; |