diff options
author | Simon Marlow <marlowsd@gmail.com> | 2010-05-05 11:47:46 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2010-05-05 11:47:46 +0000 |
commit | 7f148c3265edb930223f50c3702e33bc51f00bd1 (patch) | |
tree | d702f33d3e034a9613b9f967d2166c5ad15367aa /rts/Exception.cmm | |
parent | e81e075dffd65d3c65000c0738042934f16a4683 (diff) | |
download | haskell-7f148c3265edb930223f50c3702e33bc51f00bd1.tar.gz |
add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
Diffstat (limited to 'rts/Exception.cmm')
-rw-r--r-- | rts/Exception.cmm | 2 |
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* |