Commits on Aug 8, 2012
  1. Let's do R15 too, why not

    committed Aug 8, 2012
  2. Merge pull request #13 from devinus/adt-r14-testing

    Switch to a R14 compatible rebar and re-add R14 testing to travis
    committed Aug 8, 2012
  3. Bump version to 0.8.1

    committed Aug 8, 2012
  4. Merge pull request #12 from devinus/adt-eqc-fixes

    Fix bugs added by using the ETS table found by quickcheck
    committed Aug 8, 2012
  5. Fix bugs added by using the ETS table found by quickcheck

    Additionally, fix some minor issues in the quickcheck test
    Vagabond committed Aug 8, 2012
Commits on Aug 7, 2012
  1. Merge pull request #11 from jamesgolick/master

    committed Aug 7, 2012
Commits on Jul 4, 2012
Commits on Apr 27, 2012
  1. Several additions and improvements

    - Change a `queue:len/1` call during a checkout in the ready state to use
      `queue:is_empty/1`. All operations in poolboy that aren't informational
      or disaster recovery should now theoretically be O(1).
    - There is now "transaction" support using `transaction/2`. This will
      run a user defined function passed the worker checked out in a try
      block, ensuring that the worker is checked back into the pool should
      the operation fail.
    - A `child_spec/2` helper for embedding poolboy pools  within your
    - Documentation updates.
    committed Apr 27, 2012
  2. Use the supervisor the shutdown a worker when it's owner process dies…

    …, allowing it to terminate
    committed Apr 27, 2012
  3. Bump the version

    committed Apr 27, 2012
  4. Performance improvements and simplifications

    - Monitors are now stored in an ETS table. Simple profiling revealed
      that a lot of time was being taken in `lists:keytake/3` looking up the
      refs by pid. This should provide O(1) constant time lookup.
    - Workers are now no longer required to handle `stop` messages. Workers
      are terminated using `supervisor:terminate_child/2` and the shutdown
      strategy is no longer brutal_kill.
    - Other various cleanups.
    committed Apr 27, 2012
Commits on Apr 2, 2012
Commits on Mar 22, 2012
  1. Bump the version

    committed Mar 22, 2012
  2. Add poolboy_worker behaviour

    committed Mar 22, 2012
  3. Upgrade rebar

    committed Mar 22, 2012
  4. Convert some tabs to spaces

    committed Mar 22, 2012
Commits on Jan 31, 2012
  1. Upgrade rebar

    Devin Torres committed Jan 31, 2012
  2. Add more targets to .PHONY in Makefile and add get-deps for when we a…

    …dd PropEr
    Devin Torres committed Jan 31, 2012
  3. Sorry Kurt

    Devin Torres committed Jan 31, 2012
  4. Merge pull request #8 from basho/adt-more-quickcheck-fixes

    Fix bug with incorrect pid in monitor list
    committed Jan 31, 2012
  5. Fix issue where the wrong pid was being stored in the list of monitors

    When a pid exited while the pool was full and there were blocking
    checkouts, poolboy would put the pid of the process requesting a worker
    in the monitor tuple along with the monitor ref, instead of the pid of
    the worker.
    Vagabond committed Jan 31, 2012
Commits on Jan 27, 2012
  1. Simple cleanup & bump the version to 0.6

    Devin Torres committed Jan 27, 2012
Commits on Jan 26, 2012
  1. Merge pull request #7 from basho/adt-quickcheck

    QuickCheck Poolboy
    Devin Torres committed Jan 26, 2012
Commits on Jan 22, 2012
  1. 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. 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