Move a thread to the front of the run queue when another thread blocks on it
authorSimon Marlow <marlowsd@gmail.com>
Mon, 29 Mar 2010 14:45:21 +0000 (14:45 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Mon, 29 Mar 2010 14:45:21 +0000 (14:45 +0000)
commit2726a2f10256710cc6ed80b1098cb32e121e1be7
tree81eef196c77c6a7f4581547202e664f38cc70882
parent4b7fdaa8617e1fadc6175d2400d11fa1fc062c03
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.
includes/rts/storage/TSO.h
rts/Messages.c
rts/Schedule.c
rts/Schedule.h
rts/sm/GCAux.c
rts/sm/Sanity.c
rts/sm/Sanity.h
rts/sm/Scav.c
rts/sm/Storage.c