EctoLock (EctoLock v0.1.1) View Source
Provides helpers for advisory locks with postgresql
Link to this section Summary
Functions
Obtains an exclusive session-level advisory lock, waiting if necessary.
Obtains a shared session-level advisory lock, waiting if necessary.
Frees an exclusive session-level advisory lock held by current session
Frees all session-level advisory locks held by current session
Frees a shared transaction-level advisory lock held by current session
Obtains an exclusive transaction-level advisory lock, waiting if necessary.
Obtains a shared transaction-level advisory lock, waiting if necessary.
Obtains a shared session-level advisory lock, returning :ok if it was aquired, or :error if it wasn't possible
Obtains a shared session-level advisory lock, returning :ok if it was aquired, or :error if it wasn't possible
Obtains a shared transaction-level advisory xact_lock, returning :ok if it was aquired, or :error if it wasn't possible
Obtains a shared transaction-level advisory xact_lock, returning :ok if it was aquired, or :error if it wasn't possible
Turns a namespace + key tuple into a key
Link to this section Types
Link to this section Functions
Specs
Obtains an exclusive session-level advisory lock, waiting if necessary.
Specs
Frees an exclusive session-level advisory lock held by current session
Returns :ok
if it was successfully released or :error if it wasn't
Specs
Frees all session-level advisory locks held by current session
Specs
Obtains an exclusive transaction-level advisory lock, waiting if necessary.
Specs
Obtains a shared session-level advisory lock, returning :ok if it was aquired, or :error if it wasn't possible
Specs
Obtains a shared transaction-level advisory xact_lock, returning :ok if it was aquired, or :error if it wasn't possible
Turns a namespace + key tuple into a key
Expects namespace to be either an atom or binary, and key to be an integer
If a key with more than 32 bits is given, collisions between different namespaces may happen.