Module: DataShifter::Internal::SignalHandler

Defined in:
lib/data_shifter/internal/signal_handler.rb

Overview

Signal trap management for status reporting during data shift runs. All methods are stateless module functions.

Class Method Summary collapse

Class Method Details

.install_status_traps(status_proc) ⇒ Hash

Install signal traps for status reporting (SIGUSR1, SIGINFO). Returns a hash of previous handlers to restore later.

Parameters:

  • status_proc (Proc)

    the proc to call when signal is received

Returns:

  • (Hash)

    previous signal handlers keyed by signal name



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/data_shifter/internal/signal_handler.rb', line 15

def install_status_traps(status_proc)
  handlers = {}

  %w[USR1 INFO].each do |sig|
    next unless Signal.list.key?(sig)

    handlers[sig] = Signal.trap(sig, status_proc)
  end

  handlers
end

.restore_status_traps(handlers) ⇒ Object

Restore previous signal handlers.

Parameters:

  • handlers (Hash)

    previous handlers from install_status_traps



30
31
32
33
34
# File 'lib/data_shifter/internal/signal_handler.rb', line 30

def restore_status_traps(handlers)
  handlers.each do |sig, prev|
    Signal.trap(sig, prev) if prev && Signal.list.key?(sig)
  end
end