Module: BloodContracts::Instrumentation::SessionFinalizer

Defined in:
lib/blood_contracts/instrumentation/session_finalizer.rb,
lib/blood_contracts/instrumentation/session_finalizer/basic.rb,
lib/blood_contracts/instrumentation/session_finalizer/fibers.rb,
lib/blood_contracts/instrumentation/session_finalizer/threads.rb

Overview

Top-level interface for Instrument finalizers

Defined Under Namespace

Modules: Basic, Threads Classes: Fibers

Constant Summary collapse

FINALIZERS =

Names of finalizers

Returns:

  • (Array<Symbol>)
%i[basic fibers threads].freeze
WRONG_FINALIZER_MSG =
"Choose finalizer wisely: #{FINALIZERS.join(', ')}"
DEFAULT_POOL_SIZE =
13

Class Method Summary collapse

Class Method Details

.init(name, **opts) ⇒ #finalize!

Reset the finalizer by name

Parameters:

  • name (Symbol)

    finalizer to find

  • **opts (Hash)

    options passed to finalizer constructor

Returns:

  • (#finalize!)


41
42
43
# File 'lib/blood_contracts/instrumentation/session_finalizer.rb', line 41

def init(name, **opts)
  Thread.current[:bc_session_finalizer] = find_finalizer_by(name, **opts)
end

.instance#finalize!

Current thread instance of the Session finalizer

Returns:

  • (#finalize!)


29
30
31
32
# File 'lib/blood_contracts/instrumentation/session_finalizer.rb', line 29

def instance
  Thread.current[:bc_session_finalizer] ||=
    Instrumentation.reset_session_finalizer!
end