Commits on Jan 22, 2012
  1. @Vagabond

    Add a parallel property for poolboy

    To trigger some of the more interesting code, we need to truly do things
    in parallel, so blocking checkouts can actually happen while other
    requests are being made. This commit adds a parallel property for
    poolboy, based on the original serial one.
    One hack that was needed was to add a trailing call to erlang:self() to
    the end of each parallel branch so that we could filter out workers
    checked out by that particular branch from the model. This is necessary
    because poolboy monitors the process holding the worker and will destroy
    any workers held by a process and re-start them, if necessary, to
    maintain the right number of workers in the pool. This filtering is done
    in the next_state command, and all elements in the checked_out list in
    the model are tuples of {Worker, self()} so the list can be filtered.
    Happily, although this exercises more core, no additional bugs were
    Vagabond committed Jan 22, 2012
  2. @Vagabond

    Checkin non-worker processes 10% of the time and fix resulting bugs

    Checking in an invalid process corrupts the internal state similarly to
    receiving EXITs from non-worker pids.
    Vagabond committed Jan 22, 2012
  3. @Vagabond

    Add command to send poolboy EXIT messages for unrelated pids; fix bugs

    Sending poolboy EXIT messages for pids that are not workers causes
    invalid changes to poolboy's state. Also, legitimate processes dying
    after being checked back in also would corrupt the internal state. Add
    better checking in the EXIT handling code to guard against this.
    Vagabond committed Jan 21, 2012
  4. @Vagabond

    Add command to kill workers after they're checked back in, and fix bugs

    Extend the 'status' to check the number of monitors poolboy has on
    processes that have checked out workers. When a process dies after being
    checked back in, poolboy zeroes out the list of monitors for some reason.
    Vagabond committed Jan 21, 2012
  5. @Vagabond

    Add kill_worker and fix resulting bugs

    kill_worker exposed some new faults in poolboy, where the maximum size
    of the pool could end up smaller than it should be after a worker was
    To help in debugging this, a 'status' command was added to poolboy to
    look at its internal state and a dynamic_precondition function was used
    to compare the expected state to the actual state.
    Numerous problems were discovered by doing this, poolboy had issues
    around when it changed states, like allocating the last non-overflow
    worker would leave the pool in 'ready' until the next request came in,
    instead of immediately changing the state.
    Vagabond committed Jan 21, 2012
Commits on Jan 21, 2012
  1. @Vagabond

    Add blocking checkout to quickcheck test and fix poolboy bug

    The bug discovered was that blocking checkouts that had expired were not
    being removed from the list of 'waiting' checkouts, so when a checkout
    had timed out and a worker was subsequently checked in, the new worker
    would be sent to the expired checkout request, not any current ones.
    Vagabond committed Jan 20, 2012
  2. @Vagabond

    Initial quickcheck test for poolboy

    For now, only test the simplest API; start, stop, checkout nonblocking
    and checkin.
    Vagabond committed Jan 20, 2012
Commits on Jan 5, 2012
  1. @Vagabond
Commits on Dec 29, 2011
Commits on Dec 27, 2011
  1. Fix typespec for checkout

    Devin Torres committed Dec 27, 2011
Commits on Nov 29, 2011
  1. Meh, that didn't work

    Devin Torres committed Nov 29, 2011
  2. Link to GH profiles from authors

    Devin Torres committed Nov 29, 2011
  3. Change example supervisor strategy to one_for_one

    Devin Torres committed Nov 29, 2011
Commits on Nov 18, 2011
  1. Merge pull request #6 from kevsmith/init_fun

    Added init and stop funs to poolboy's config
    Devin Torres committed Nov 18, 2011
Commits on Nov 10, 2011
  1. Added init and stop funs to poolboy's config

    Added init_fun and stop_fun to poolboy's config proplist.
    These functions are used to init and stop workers as they're
    added and removed from a pool. These functions allow poolboy
    to pool processes which need additional processing before they
    are ready to be added or removed from the pool.
    The motivation for adding these functions is the case where poolboy
    is managing a pool of database connection processes. These processes
    need to load prepared statements immediately after they are created
    and before they are placed in the pool. Prior to adding these functions
    the only way to pool these processes was to wrap them in additional code
    to handle the post-connection initialization. These functions now
    permit poolboy to pool the database connections without wrapping them.
    Kevin Smith committed Nov 10, 2011
Commits on Sep 30, 2011
  1. Bump the version number (0.4)

    Devin Torres committed Sep 30, 2011
  2. Try to address issue #2 with an optional timeout paramenter on checko…

    …ut (default: 5000)
    Some people value the let-it-fail philosophy which would allow the pool to fail when it can't send the event in time. Others may want to mimic a wholly blocking interface with infinity.
    Devin Torres committed Sep 30, 2011
  3. Merge cleanup and try to cleanup the tests

    Devin Torres committed Sep 30, 2011
Commits on Sep 29, 2011
  1. Oops, actually fix merge conflict

    Devin Torres committed Sep 29, 2011
  2. Fix merge conflict

    Devin Torres committed Sep 29, 2011
Commits on Sep 27, 2011
  1. @skeltoac

    Fix demonitored pids being left in state space and check monitor list…

    … length in all tests. Add user_death test to check that an orphaned worker is killed when a monitored user is reported 'DOWN'.
    skeltoac committed Sep 27, 2011
Commits on Sep 26, 2011
  1. @skeltoac
  2. @skeltoac

    Remove down monitor from state.

    skeltoac committed Sep 26, 2011
  3. @skeltoac


    skeltoac committed Sep 26, 2011
  4. @skeltoac

    Remove down monitor from state.

    skeltoac committed Sep 26, 2011
Commits on Sep 20, 2011
  1. @jaredmorrow
  2. @Vagabond @niksite
Commits on Sep 19, 2011
  1. @Vagabond
Commits on Sep 15, 2011
  1. 1. Fixed pool spec in README file (it should be 'size' variable, not …

    2. Fixed bad behavior in case of checkout_blocks=true and long running workers.
    Nikolay A. Panov committed Sep 15, 2011
Commits on Sep 7, 2011
  1. @d2fn

    add registered apps for hot code upgrades

    d2fn committed with Devin Torres Aug 22, 2011
  2. @jaredmorrow
Commits on Sep 2, 2011
Commits on Aug 25, 2011
  1. Add .eunit to .gitignore

    Devin Torres committed Aug 25, 2011