Class FTW::Pool
In: lib/ftw/pool.rb
lib/ftw/pool.rb
Parent: Object

A simple thread-safe resource pool.

Resources in this pool must respond to ‘available?’. For best results, your resources should just ‘include FTW::Poolable

The primary use case was as a way to pool FTW::Connection instances.

Methods

add   add   each   each   fetch   fetch   new   new  

Public Class methods

Public Instance methods

Add an object to the pool with a given identifier. For example:

    pool.add("www.google.com:80", connection1)
    pool.add("www.google.com:80", connection2)
    pool.add("github.com:443", connection3)

Add an object to the pool with a given identifier. For example:

    pool.add("www.google.com:80", connection1)
    pool.add("www.google.com:80", connection2)
    pool.add("github.com:443", connection3)

Iterate over all pool members.

This holds the pool lock during this method, so you should not call ‘fetch’ or ‘add’.

Iterate over all pool members.

This holds the pool lock during this method, so you should not call ‘fetch’ or ‘add’.

Fetch a resource from this pool. If no available resources are found, the ‘default_block’ is invoked and expected to return a new resource to add to the pool that satisfies the fetch..

Example:

    pool.fetch("github.com:443") do
      conn = FTW::Connection.new("github.com:443")
      conn.secure
      conn
    end

Fetch a resource from this pool. If no available resources are found, the ‘default_block’ is invoked and expected to return a new resource to add to the pool that satisfies the fetch..

Example:

    pool.fetch("github.com:443") do
      conn = FTW::Connection.new("github.com:443")
      conn.secure
      conn
    end

[Validate]