Permalink
Commits on Aug 31, 2012
  1. @Vagabond

    Update quickcheck to use blocking/1 and fix uncovered bug

    Blocking/1 was added in quickcheck 1.27 and allows the test to indicate
    which states might block execution and lets quickcheck find bugs around
    them.
    
    The bug uncovered has to do with when a process holding a worker exits,
    the DOWN monitor fires and poolboy calls supervisor:terminate_child on
    the worker the process held. When the EXIT message comes in for that
    process, we then change the state around such that there is an
    additional worker.
    
    This caused a race condition if there were already checkout messages
    waiting in the mailbox, because the EXIT message would come in behind
    the checkout messages, and so even though we had just killed a worker,
    we'd fail checkouts because we hadn't processed the EXIT yet.
    
    The fix is to call into handle_worker_exit right after we terminate the
    worker, thus updating our state to reflect the actual worker count
    before processing any messages in the mailbox.
    Vagabond committed Aug 31, 2012
Commits on Aug 14, 2012
  1. Add start/1 and start/2 for starting pools without linking to the

    starting process.
    
    This is useful for use in e.g. init_per_suite/1 in Common Tests.
    committed Aug 14, 2012
Commits on Aug 10, 2012
Commits on Aug 9, 2012
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. @Vagabond
  4. Bump version to 0.8.1

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

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

    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

    poolboy:status/1
    committed Aug 7, 2012
Commits on Jul 4, 2012
  1. @jamesgolick
  2. @jamesgolick
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
      supervisors.
    - 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. @Vagabond

    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
  6. @Vagabond