Thu Nov 13 07:57:30 PST 2008 Simon Marlow <[EMAIL PROTECTED]>
* Fix an extremely subtle deadlock bug on x86_64
The recent_activity flag was an unsigned int, but we sometimes do a
64-bit xchg() on it, which overwrites the next word in memory. This
happened to contain the sched_state flag, which is used to control the
orderly shutdown of the system. If the xchg() happened during
shutdown, the scheduler would get confused and deadlock. Don't you
just love C?
M ./rts/Schedule.c -3 +5
M ./rts/Schedule.h -2 +2
View patch online:
http://darcs.haskell.org/ghc-6.10/ghc/_darcs/patches/20081113155730-12142-ad4c517c193a7e27450a0c4bbd58fe5cd75ed719.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc