Module: Contrast::Components::Scope

Defined in:
lib/contrast/components/scope.rb

Overview

:nodoc:

Defined Under Namespace

Modules: InstanceMethods Classes: Interface

Constant Summary collapse

MONITOR =
Monitor.new
EXECUTION_CONTEXT =

rubocop:disable Style/MutableConstant

{}
ClassMethods =
InstanceMethods
COMPONENT_INTERFACE =
Interface.new

Class Method Summary collapse

Class Method Details

.sweep_dead_ecsObject



113
114
115
116
117
118
119
120
121
122
# File 'lib/contrast/components/scope.rb', line 113

def self.sweep_dead_ecs
  # TODO: RUBY-571, #sweep_dead_ecs compensates for a lack of weak tables
  # 'ec' for execution context.  in this case, it's a Fiber.
  # Threads rely on Fibers, so two birds, one stone.
  MONITOR.synchronize do
    EXECUTION_CONTEXT.delete_if do |ec, _scope|
      !ec.alive?
    end
  end
end