Fix #2783: detect black-hole loops properly
authorSimon Marlow <marlowsd@gmail.com>
Mon, 17 Nov 2008 14:45:15 +0000 (14:45 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Mon, 17 Nov 2008 14:45:15 +0000 (14:45 +0000)
commit0fa59deb44b8a1a0b44ee2b4cc4ae0db31dec038
treeaf9ebb1997ee0520325c21ea2cc4797430155944
parent94bdf8cb5234289267310b1134b5877f31ddada0
Fix #2783: detect black-hole loops properly
At some point we regressed on detecting simple black-hole loops.  This
happened due to the introduction of duplicate-work detection for
parallelism: a black-hole loop looks very much like duplicate work,
except it's duplicate work being performed by the very same thread.
So we have to detect and handle this case.
rts/RaiseAsync.c
rts/RaiseAsync.h
rts/Schedule.c
rts/ThreadPaused.c