Module: Async::Signals

Includes:
ForkHook
Defined in:
lib/async/signals.rb,
lib/async/signals/ignore.rb,
lib/async/signals/context.rb,
lib/async/signals/version.rb,
lib/async/signals/graceful.rb,
lib/async/signals/handlers.rb,
lib/async/signals/controller.rb

Defined Under Namespace

Modules: ForkHook, Graceful, Ignore Classes: Context, Controller, Handlers

Constant Summary collapse

CONTROLLER =
Controller.new
VERSION =
"0.6.0"

Class Method Summary collapse

Methods included from ForkHook

#_fork

Class Method Details

.controllerObject

The default process-wide signal controller.



19
20
21
# File 'lib/async/signals.rb', line 19

def self.controller
	CONTROLLER
end

.defaultObject

The default signal backend for the current context.



25
26
27
28
29
30
31
32
33
34
# File 'lib/async/signals.rb', line 25

def self.default
	if ::Thread.current == ::Thread.main
		# TruffleRuby does not currently expose `Fiber.scheduler`:
		unless ::Fiber.respond_to?(:scheduler) && ::Fiber.scheduler
			return self
		end
	end
	
	return Ignore
end

.install(handlers, &block) ⇒ Object

Install signal handlers using the process-wide signal controller.



39
40
41
# File 'lib/async/signals.rb', line 39

def self.install(handlers, &block)
	CONTROLLER.install(handlers, &block)
end

.reset!Object

Reset the process-wide signal controller.



45
46
47
# File 'lib/async/signals.rb', line 45

def self.reset!
	CONTROLLER.reset!
end