diff options
author | Simon Marlow <marlowsd@gmail.com> | 2010-03-29 14:45:21 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2010-03-29 14:45:21 +0000 |
commit | 2726a2f10256710cc6ed80b1098cb32e121e1be7 (patch) | |
tree | 81eef196c77c6a7f4581547202e664f38cc70882 /rts/sm/GCAux.c | |
parent | 4b7fdaa8617e1fadc6175d2400d11fa1fc062c03 (diff) | |
download | haskell-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.c | 3 |
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); |