summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorLuite Stegeman <stegeman@gmail.com>2023-01-31 16:58:28 +0900
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-02-06 09:43:59 -0500
commit77a8234c5d284846e18c0a44ba5ee196059aaea6 (patch)
tree20dddc13a24603030c76b4f12fe1abc030a2a6dd /rts
parent6636b670233522f01d002c9b97827d00289dbf5c (diff)
downloadhaskell-77a8234c5d284846e18c0a44ba5ee196059aaea6.tar.gz
Fix marking async exceptions in the JS backend
Async exceptions are posted as a pair of the exception and the thread object. This fixes the marking pass to correctly follow the two elements of the pair. Potentially fixes #22836
Diffstat (limited to 'rts')
-rw-r--r--rts/js/gc.js3
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/js/gc.js b/rts/js/gc.js
index 6c9934ed33..00def79daa 100644
--- a/rts/js/gc.js
+++ b/rts/js/gc.js
@@ -493,7 +493,8 @@ function h$follow(obj, sp) {
}
}
for(i=0;i<c.excep.length;i++) {
- ADDW(c.excep[i]);
+ ADDW(c.excep[i][0]); // the posting thread
+ ADDW(c.excep[i][1]); // the exception
}
} else if(c instanceof h$Transaction) {
// - the accessed TVar values don't need to be marked