Module: Sequel::Postgres::PgAdvisoryLocking
- Defined in:
- lib/sequel/extensions/pg_advisory_locking.rb
Instance Method Summary collapse
- #try_advisory_lock(id, opts = {}, &block) ⇒ Object
- #with_advisory_lock(id, opts = {}, &block) ⇒ Object
Instance Method Details
#try_advisory_lock(id, opts = {}, &block) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/sequel/extensions/pg_advisory_locking.rb', line 14 def try_advisory_lock(id, opts = {}, &block) exclusive = opts.fetch(:exclusive, true) lockfn = exclusive ? :pg_try_advisory_lock : :pg_try_advisory_lock_shared unlockfn = exclusive ? :pg_advisory_unlock : :pg_advisory_unlock_shared yield_with_advisory_lock(id, lockfn, unlockfn, &block) end |
#with_advisory_lock(id, opts = {}, &block) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/sequel/extensions/pg_advisory_locking.rb', line 7 def with_advisory_lock(id, opts = {}, &block) exclusive = opts.fetch(:exclusive, true) lockfn = exclusive ? :pg_advisory_lock : :pg_advisory_lock_shared unlockfn = exclusive ? :pg_advisory_unlock : :pg_advisory_unlock_shared yield_with_advisory_lock(id, lockfn, unlockfn, &block) end |