Module: Mongoid::Sessions
- Defined in:
- lib/mongoid_connection_pool/mongoid/sessions.rb,
lib/mongoid_connection_pool/mongoid/sessions/session_pool.rb
Defined Under Namespace
Classes: SessionPool
Class Method Summary collapse
- .default ⇒ Object
- .disconnect(thread = Thread.current) ⇒ Object
- .session_pool(name = :default) ⇒ Object
- .synchronize(&block) ⇒ Object
- .with_name(name) ⇒ Object
- .with_session(name = :default) ⇒ Object
Class Method Details
.default ⇒ Object
29 30 31 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 29 def default with_name(:default) end |
.disconnect(thread = Thread.current) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 16 def disconnect(thread=Thread.current) synchronize do @session_pool.try(:each) do |name, pool| if thread pool.session_for(thread).try(:disconnect) else pool.sessions.try(:each) { |session| session.disconnect } end end end true end |
.session_pool(name = :default) ⇒ Object
11 12 13 14 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 11 def session_pool(name=:default) synchronize { @session_pool ||= ThreadSafe::Cache.new } @session_pool.fetch(name) { build_session_pool(name) } end |
.synchronize(&block) ⇒ Object
6 7 8 9 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 6 def synchronize(&block) @lock ||= Mutex.new @lock.synchronize(&block) end |
.with_name(name) ⇒ Object
33 34 35 36 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 33 def with_name(name) session_pool(name).session_for(Thread.current) || session_pool(name).checkout end |
.with_session(name = :default) ⇒ Object
38 39 40 41 42 |
# File 'lib/mongoid_connection_pool/mongoid/sessions.rb', line 38 def with_session(name=:default) yield ensure reap_current_session(name) end |