--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: __pool_lock
- !ruby/object:RI::MethodSummary 
  name: __pool_wait
- !ruby/object:RI::MethodSummary 
  name: __pools
- !ruby/object:RI::MethodSummary 
  name: append_pool
- !ruby/object:RI::MethodSummary 
  name: included
- !ruby/object:RI::MethodSummary 
  name: lock
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: pool_size
- !ruby/object:RI::MethodSummary 
  name: pools
- !ruby/object:RI::MethodSummary 
  name: scavenger
- !ruby/object:RI::MethodSummary 
  name: scavenger?
- !ruby/object:RI::MethodSummary 
  name: scavenger_interval
comment: 
- !ruby/struct:SM::Flow::H 
  level: 4
  text: Notes
- !ruby/struct:SM::Flow::P 
  body: Provides pooling support to class it got included in.
- !ruby/struct:SM::Flow::P 
  body: Pooling of objects is a faster way of aquiring instances of objects compared to regular allocation and initialization because instances are keeped in memory reused.
- !ruby/struct:SM::Flow::P 
  body: Classes that include Pooling module have re-defined new method that returns instances acquired from pool.
- !ruby/struct:SM::Flow::P 
  body: Term resource is used for any type of poolable objects and should NOT be thought as DataMapper Resource or ActiveResource resource and such.
- !ruby/struct:SM::Flow::P 
  body: In Data Objects connections are pooled so that it is unnecessary to allocate and initialize connection object each time connection is needed, like per request in a web application.
- !ruby/struct:SM::Flow::P 
  body: Pool obviously has to be thread safe because state of object is reset when it is released.
constants: []

full_name: Extlib::Pooling
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: detach
- !ruby/object:RI::MethodSummary 
  name: release
name: Pooling
superclass: 
