Skip to content
Commits on Sep 4, 2012
  1. @Vagabond

    Fix backwards compatability with old start_link/2

    Vagabond committed
    If the old API is used, pass PoolArgs as WorkerArgs so that legacy code
    doesn't break.
    Also, fix some whitespace screwups.
Commits on Aug 31, 2012
  1. Merge pull request #15 from devinus/adt-eqc-blocking

    Update quickcheck to use blocking/1 and fix uncovered bug
  2. @Vagabond

    Update quickcheck to use blocking/1 and fix uncovered bug

    Vagabond committed
    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
    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.
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.
Commits on Aug 10, 2012
Commits on Aug 9, 2012
Commits on Aug 8, 2012
  1. Let's do R15 too, why not

  2. Merge pull request #13 from devinus/adt-r14-testing

    Switch to a R14 compatible rebar and re-add R14 testing to travis
  3. @Vagabond
  4. Bump version to 0.8.1

  5. Merge pull request #12 from devinus/adt-eqc-fixes

    Fix bugs added by using the ETS table found by quickcheck
  6. @Vagabond

    Fix bugs added by using the ETS table found by quickcheck

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

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
    - Documentation updates.
  2. Use the supervisor the shutdown a worker when it's owner process dies…

    …, allowing it to terminate
  3. Bump the version

  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.
Commits on Apr 2, 2012
Commits on Mar 22, 2012
  1. Bump the version

  2. Add poolboy_worker behaviour

  3. Upgrade rebar

  4. Convert some tabs to spaces

Commits on Jan 31, 2012
  1. Upgrade rebar

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

    Devin Torres committed
    …dd PropEr
  3. Sorry Kurt

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

    Fix bug with incorrect pid in monitor list
Something went wrong with that request. Please try again.