• Poul-Henning Kamp's avatar
    Redo the way we manage the thread pool(s). · ea859f03
    Poul-Henning Kamp authored
    This is necessary to generalize the thread pools to do other tasks
    for us in the future.
    
    Please read the descriptions of the new and changed thread_pool*
    parameters carefully before you tweak them, some of them have
    slightly different meanings now.
    
    The high-level view of this is that we now have dedicated a thread to
    adding threads to the pools, in addition to the thread we already
    had that killed idle threads from the pools.
    
    The difference is that this new thread is quite a bit more reluctant
    to add threads than the previous code, which would add a thread any
    time it could get away with it.
    
    Hopefully that reduces the tendency for thread-pile-ups.
    
    This commit also reduces the cross-pool locking contention by making
    the overflow queue a per pool item.
    
    The down side of that is that more of the stats counters have become
    unlocked and thus can get out of sync if two threads race when updating
    them.  This is an XXX item.
    
    Thanks to Anders Nordby for testing this patch.
    
    
    
    
    git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2653 d4fa192b-c00b-0410-8231-f00ffab90ce4
    ea859f03
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...
man Loading commit data...
redhat Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
varnishapi.pc.in Loading commit data...