README.md

Billiards
=========

A dumb little resource pool.

### Create a Pool

    {:ok, dial_pool} = Billiards.rack(resource: Dialer, workers: 4)

### Billiards initializes worker processes with `start_link/0`.
### You call your pool like it were a single GenServer
    
    {:ok, phone_call_to_jenny } = Billiards.call dial_pool, {:dial, '867-5309'}

Billiards uses a dumb strategy to pick resources from the pool. Right now, it just takes the
first available resource.

If all resources are busy, the calling process will block until a resource is available 
to serve it.

### About

It's not advisable to use this

### TODO

* One/both of:
  * Timeouts, or
  * Monitor failure in processes invoking `Billiards.call`
    A crash there will leave a resource in a 'busy' state.
* Write more tests.