Run finalizers *after* updating the stable pointer table (#4221)
authorSimon Marlow <marlowsd@gmail.com>
Tue, 10 Aug 2010 13:37:39 +0000 (13:37 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 10 Aug 2010 13:37:39 +0000 (13:37 +0000)
commitafabd52e95235ab36c5ad7b3473b5d6a4d58360b
treecb646ed682345fe60f6460ca558f003db1f4c681
parent7a50ff1e44710335e935ff199cd95616840b9f02
Run finalizers *after* updating the stable pointer table (#4221)
Silly bug really, we were running the C finalizers while the StablePtr
table was still in a partially-updated state during GC, but finalizers
are allowed to call freeStablePtr() (via hs_free_fun_ptr(), for
example), and chaos ensues.
rts/sm/GC.c