• Tollef Fog Heen's avatar
    Merge r4069: Factor out session allocation for background threads · 801110e5
    Tollef Fog Heen authored
    Fix an inconsequential oversight in session management, and prevent it
    from happening again:
    
    We optimize session allocation, SES_New(), to minimize the amount of
    locking the VCA_thread participates in with flip-flop lists of free
    sessions: Allocate from one list, free to the other, flip lists only
    when necessary.
    
    This scheme only works if nobody but VCA_thread calls SES_New().
    
    Background worker threads need dummy sessions and thus called into
    SES_New() as well.
    
    These calls all happen during startup, so they do in fact not mess up
    the locking, but made mockery of a number of very stern comments.
    
    Add SES_Alloc() for such "other uses" and enforce VCA_thread monopoly
    with an assert.
    
    
    
    git-svn-id: http://www.varnish-cache.org/svn/branches/2.0@4259 d4fa192b-c00b-0410-8231-f00ffab90ce4
    801110e5
Name
Last commit
Last update
..
Makefile.am Loading commit data...
acct_fields.h Loading commit data...
c.sh Loading commit data...
cache.h Loading commit data...
cache_acceptor.c Loading commit data...
cache_acceptor.h Loading commit data...
cache_acceptor_epoll.c Loading commit data...
cache_acceptor_kqueue.c Loading commit data...
cache_acceptor_poll.c Loading commit data...
cache_acceptor_ports.c Loading commit data...
cache_backend.c Loading commit data...
cache_backend.h Loading commit data...
cache_backend_cfg.c Loading commit data...
cache_backend_poll.c Loading commit data...
cache_backend_poll.h Loading commit data...
cache_ban.c Loading commit data...
cache_center.c Loading commit data...
cache_cli.c Loading commit data...
cache_dir_random.c Loading commit data...
cache_dir_round_robin.c Loading commit data...
cache_dir_simple.c Loading commit data...
cache_expire.c Loading commit data...
cache_fetch.c Loading commit data...
cache_hash.c Loading commit data...
cache_http.c Loading commit data...
cache_httpconn.c Loading commit data...
cache_lck.c Loading commit data...
cache_main.c Loading commit data...
cache_panic.c Loading commit data...
cache_pipe.c Loading commit data...
cache_pool.c Loading commit data...
cache_response.c Loading commit data...
cache_session.c Loading commit data...
cache_vary.c Loading commit data...
cache_vcl.c Loading commit data...
cache_vrt.c Loading commit data...
cache_vrt_esi.c Loading commit data...
cache_vrt_re.c Loading commit data...
cache_ws.c Loading commit data...
common.h Loading commit data...
default.vcl Loading commit data...
flint.lnt Loading commit data...
flint.sh Loading commit data...
hash_classic.c Loading commit data...
hash_critbit.c Loading commit data...
hash_simple_list.c Loading commit data...
hash_slinger.h Loading commit data...
heritage.h Loading commit data...
instance.c Loading commit data...
mgt.h Loading commit data...
mgt_child.c Loading commit data...
mgt_cli.c Loading commit data...
mgt_cli.h Loading commit data...
mgt_param.c Loading commit data...
mgt_pool.c Loading commit data...
mgt_vcc.c Loading commit data...
rfc2616.c Loading commit data...
s.sh Loading commit data...
shmlog.c Loading commit data...
steps.h Loading commit data...
stevedore.c Loading commit data...
stevedore.h Loading commit data...
storage_file.c Loading commit data...
storage_malloc.c Loading commit data...
storage_synth.c Loading commit data...
storage_umem.c Loading commit data...
varnishd.1 Loading commit data...
varnishd.c Loading commit data...
vclflint.lnt Loading commit data...
vclflint.sh Loading commit data...
vparam.h Loading commit data...