Module: Takagi::ReactorRegistry
- Extended by:
- Takagi::Registry::Base
- Defined in:
- lib/takagi/reactor_registry.rb
Overview
Tracks background reactor instances and controls their lifecycle.
Uses Registry::Base for thread-safe storage and consistent API. Reactors are stored with auto-incrementing IDs.
NOTE: Cannot be moved to Reactor::Registry because Reactor is already a class. Keeping as ReactorRegistry at top level for now.
Class Method Summary collapse
-
.reactors ⇒ Array
Get all registered reactors.
-
.register(reactor) ⇒ Integer
Register a reactor instance.
-
.start_all ⇒ void
Start all registered reactors.
-
.stop_all ⇒ void
Stop all registered reactors.
Methods included from Takagi::Registry::Base
[], clear!, count, each, empty?, entries, extended, get, keys, metadata_for, register, registered?, unregister
Class Method Details
.reactors ⇒ Array
Get all registered reactors
34 35 36 |
# File 'lib/takagi/reactor_registry.rb', line 34 def reactors @mutex.synchronize { registry.values } end |
.register(reactor) ⇒ Integer
Register a reactor instance
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_all ⇒ void
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_all ⇒ void
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 |