Module: Takagi::ReactorRegistry

Extended by:
Takagi::Registry::Base
Defined in:
lib/takagi/reactor_registry.rb,
sig/takagi/reactor_registry.rbs

Overview

Tracks background reactor instances and controls their lifecycle.

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Takagi::Registry::Base

[], clear!, count, each, empty?, entries, extended, get, keys, metadata_for, register, registered?, unregister

Class Attribute Details

.reactorsArray (readonly)

Get all registered reactors

Returns:

  • (Array)

    List of reactor instances



34
35
36
# File 'lib/takagi/reactor_registry.rb', line 34

def reactors
  @mutex.synchronize { registry.values }
end

Class Method Details

.register(reactor) ⇒ Integer

Register a reactor instance

Parameters:

  • reactor (Object)

    Reactor instance

Returns:

  • (Integer)

    Auto-assigned reactor ID



25
26
27
28
29
# File 'lib/takagi/reactor_registry.rb', line 25

def register(reactor)
  id = next_id
  super(id, reactor)
  id
end

.start_allvoid

This method returns an undefined value.

Start all registered reactors



41
42
43
# File 'lib/takagi/reactor_registry.rb', line 41

def start_all
  reactors.each(&:start)
end

.stop_allvoid

This method returns an undefined value.

Stop all registered reactors



48
49
50
51
52
# File 'lib/takagi/reactor_registry.rb', line 48

def stop_all
  reactors.each do |reactor|
    reactor.stop if reactor.respond_to?(:stop)
  end
end