Module: ActiveSupport::IsolatedExecutionState
- Defined in:
- lib/active_support/isolated_execution_state.rb
Overview
:nodoc:
Class Attribute Summary collapse
-
.isolation_level ⇒ Object
Returns the value of attribute isolation_level.
-
.scope ⇒ Object
readonly
Returns the value of attribute scope.
Instance Attribute Summary collapse
-
#active_support_execution_state ⇒ Object
Returns the value of attribute active_support_execution_state.
Class Method Summary collapse
- .[](key) ⇒ Object
- .[]=(key, value) ⇒ Object
- .clear ⇒ Object
- .context ⇒ Object
- .delete(key) ⇒ Object
- .key?(key) ⇒ Boolean
- .share_with(other, &block) ⇒ Object
Class Attribute Details
.isolation_level ⇒ Object
Returns the value of attribute isolation_level.
11 12 13 |
# File 'lib/active_support/isolated_execution_state.rb', line 11 def isolation_level @isolation_level end |
.scope ⇒ Object (readonly)
Returns the value of attribute scope.
11 12 13 |
# File 'lib/active_support/isolated_execution_state.rb', line 11 def scope @scope end |
Instance Attribute Details
#active_support_execution_state ⇒ Object
Returns the value of attribute active_support_execution_state.
7 8 9 |
# File 'lib/active_support/isolated_execution_state.rb', line 7 def active_support_execution_state @active_support_execution_state end |
Class Method Details
.[](key) ⇒ Object
31 32 33 34 35 |
# File 'lib/active_support/isolated_execution_state.rb', line 31 def [](key) if state = @scope.current.active_support_execution_state state[key] end end |
.[]=(key, value) ⇒ Object
37 38 39 40 |
# File 'lib/active_support/isolated_execution_state.rb', line 37 def []=(key, value) state = (@scope.current.active_support_execution_state ||= {}) state[key] = value end |
.clear ⇒ Object
50 51 52 |
# File 'lib/active_support/isolated_execution_state.rb', line 50 def clear @scope.current.active_support_execution_state&.clear end |
.context ⇒ Object
54 55 56 |
# File 'lib/active_support/isolated_execution_state.rb', line 54 def context scope.current end |
.delete(key) ⇒ Object
46 47 48 |
# File 'lib/active_support/isolated_execution_state.rb', line 46 def delete(key) @scope.current.active_support_execution_state&.delete(key) end |
.key?(key) ⇒ Boolean
42 43 44 |
# File 'lib/active_support/isolated_execution_state.rb', line 42 def key?(key) @scope.current.active_support_execution_state&.key?(key) end |
.share_with(other, &block) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/active_support/isolated_execution_state.rb', line 58 def share_with(other, &block) # Action Controller streaming spawns a new thread and copy thread locals. # We do the same here for backward compatibility, but this is very much a hack # and streaming should be rethought. old_state, context.active_support_execution_state = context.active_support_execution_state, other.active_support_execution_state.dup block.call ensure context.active_support_execution_state = old_state end |