• aljee@hyper.cx's avatar
    Allow multiple C finalizers to be attached to a Weak# · d61c623e
    aljee@hyper.cx authored
    The commit replaces mkWeakForeignEnv# with addCFinalizerToWeak#.
    This new primop mutates an existing Weak# object and adds a new
    C finalizer to it.
    
    This change removes an invariant in MarkWeak.c, namely that the relative
    order of Weak# objects in the list needs to be preserved across GC. This
    makes it easier to split the list into per-generation structures.
    
    The patch also removes a race condition between two threads calling
    finalizeWeak# on the same WEAK object at that same time.
    d61c623e
Name
Last commit
Last update
bindisttest Loading commit data...
compiler Loading commit data...
distrib Loading commit data...
docs Loading commit data...
driver Loading commit data...
ghc Loading commit data...
includes Loading commit data...
libffi Loading commit data...
libraries Loading commit data...
mk Loading commit data...
rts Loading commit data...
rules Loading commit data...
utils Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
ANNOUNCE Loading commit data...
HACKING.md Loading commit data...
LICENSE Loading commit data...
MAKEHELP Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SUBMAKEHELP Loading commit data...
aclocal.m4 Loading commit data...
boot Loading commit data...
config.guess Loading commit data...
config.sub Loading commit data...
configure.ac Loading commit data...
ghc.mk Loading commit data...
install-sh Loading commit data...
packages Loading commit data...
settings.in Loading commit data...
sync-all Loading commit data...
tarballs Loading commit data...
validate Loading commit data...