Class: ActiveRecord::AsynchronousQueriesTracker::Session
Do not use. This class is for internal use only.
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activerecord/lib/active_record/asynchronous_queries_tracker.rb |
Class Method Summary
- .new ⇒ Session constructor
Instance Attribute Summary
- #active? ⇒ Boolean readonly
Instance Method Summary
Constructor Details
.new ⇒ Session
# File 'activerecord/lib/active_record/asynchronous_queries_tracker.rb', line 9
def initialize @active = Concurrent::AtomicBoolean.new(true) @lock = Concurrent::ReadWriteLock.new end
Instance Attribute Details
#active? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/asynchronous_queries_tracker.rb', line 14
def active? @active.true? end
Instance Method Details
#finalize(wait = false)
[ GitHub ]# File 'activerecord/lib/active_record/asynchronous_queries_tracker.rb', line 22
def finalize(wait = false) @active.make_false if wait # Wait until all thread with a read lock are done @lock.with_write_lock { } end end
#synchronize(&block)
[ GitHub ]# File 'activerecord/lib/active_record/asynchronous_queries_tracker.rb', line 18
def synchronize(&block) @lock.with_read_lock(&block) end