summaryrefslogtreecommitdiff
path: root/rts/sm/GCAux.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2010-03-29 14:45:21 +0000
committerSimon Marlow <marlowsd@gmail.com>2010-03-29 14:45:21 +0000
commit2726a2f10256710cc6ed80b1098cb32e121e1be7 (patch)
tree81eef196c77c6a7f4581547202e664f38cc70882 /rts/sm/GCAux.c
parent4b7fdaa8617e1fadc6175d2400d11fa1fc062c03 (diff)
downloadhaskell-2726a2f10256710cc6ed80b1098cb32e121e1be7.tar.gz
Move a thread to the front of the run queue when another thread blocks on it
This fixes #3838, and was made possible by the new BLACKHOLE infrastructure. To allow reording of the run queue I had to make it doubly-linked, which entails some extra trickiness with regard to GC write barriers and suchlike.
Diffstat (limited to 'rts/sm/GCAux.c')
-rw-r--r--rts/sm/GCAux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/sm/GCAux.c b/rts/sm/GCAux.c
index 3962bf0d99..0fb8e1f6c7 100644
--- a/rts/sm/GCAux.c
+++ b/rts/sm/GCAux.c
@@ -119,7 +119,8 @@ revertCAFs( void )
{
StgIndStatic *c;
- for (c = (StgIndStatic *)revertible_caf_list; c != NULL;
+ for (c = (StgIndStatic *)revertible_caf_list;
+ c != (StgIndStatic *)END_OF_STATIC_LIST;
c = (StgIndStatic *)c->static_link)
{
SET_INFO(c, c->saved_info);