• Poul-Henning Kamp's avatar
    Add a final backstop, so we absolutely 100% certainly do not · 32af38d4
    Poul-Henning Kamp authored
    try to delete a objhead while it still has a waiting list,
    by forcing the last ref holder to rush the WL.
    
    Since the hasher owns the refcounts on objhead, we cannot just
    mingle req and objcore refcounts.
    
    Fortunately we don't need to add another refcounter, because all
    we really care about is the wl being empty when we drop the last
    ref.
    
    The wl/hsh_rush() mechanism will work differently with different
    thread-scheduling schenarios, and I cannot definitively rule out
    that we can drop the last ref on an oh, while there are still req's
    on the waiting list.
    
    Given that, and the existence proof in ticket #1823's race, this
    might have been the indicated memory-trampler.
    
    Conflicts:
    	bin/varnishd/cache/cache_hash.c
    32af38d4
Name
Last commit
Last update
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Makefile.inc.phk Loading commit data...
Makefile.phk Loading commit data...
README Loading commit data...
README.Packaging Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
config.phk Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...