summaryrefslogtreecommitdiff
path: root/rts/Exception.cmm
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2010-05-05 11:47:46 +0000
committerSimon Marlow <marlowsd@gmail.com>2010-05-05 11:47:46 +0000
commit7f148c3265edb930223f50c3702e33bc51f00bd1 (patch)
treed702f33d3e034a9613b9f967d2166c5ad15367aa /rts/Exception.cmm
parente81e075dffd65d3c65000c0738042934f16a4683 (diff)
downloadhaskell-7f148c3265edb930223f50c3702e33bc51f00bd1.tar.gz
add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
Diffstat (limited to 'rts/Exception.cmm')
-rw-r--r--rts/Exception.cmm2
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/Exception.cmm b/rts/Exception.cmm
index 55c79cede7..af846928b5 100644
--- a/rts/Exception.cmm
+++ b/rts/Exception.cmm
@@ -218,6 +218,8 @@ stg_killThreadzh
/* Needs 3 words because throwToSingleThreaded uses some stack */
STK_CHK_GEN( WDS(3), R1_PTR & R2_PTR, stg_killThreadzh);
+ /* We call allocate in throwTo(), so better check for GC */
+ MAYBE_GC(R1_PTR & R2_PTR, stg_killThreadzh);
/*
* We might have killed ourselves. In which case, better be *very*