summaryrefslogtreecommitdiff
path: root/rts/RaiseAsync.h
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2014-07-31 10:00:16 +0100
committerSimon Marlow <marlowsd@gmail.com>2014-08-01 12:45:41 +0100
commit9d9a55469719908bbd5cd3277e0ac79c0588dc55 (patch)
tree64ac687c7eaae1518d20e180d6d71ae04f4671ef /rts/RaiseAsync.h
parent6483b8ab7c5cb4dc3d06b2069dcd44fabe400858 (diff)
downloadhaskell-9d9a55469719908bbd5cd3277e0ac79c0588dc55.tar.gz
interruptible() was not returning true for BlockedOnSTM (#9379)
Summary: There's an knock-on fix in HeapStackCheck.c which is potentially scary, but I'm pretty confident is OK. See comment for details. Test Plan: I've run all the STM tests I can find, including libraries/stm/tests/stm049 with +RTS -N8 and some of the constants bumped to make it more of a stress test. Reviewers: hvr, rwbarton, austin Subscribers: simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D104 GHC Trac Issues: #9379
Diffstat (limited to 'rts/RaiseAsync.h')
-rw-r--r--rts/RaiseAsync.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h
index fabdc78cee..d0c9efcbee 100644
--- a/rts/RaiseAsync.h
+++ b/rts/RaiseAsync.h
@@ -52,6 +52,7 @@ interruptible(StgTSO *t)
{
switch (t->why_blocked) {
case BlockedOnMVar:
+ case BlockedOnSTM:
case BlockedOnMVarRead:
case BlockedOnMsgThrowTo:
case BlockedOnRead: