Class: ProcessCommand::Signal::Sender

Inherits:
Object
  • Object
show all
Defined in:
lib/process_command/signal/sender.rb

Constant Summary collapse

SENDER_LOCK =
Mutex.new
DEFAULT_DELAY =
0.05

Class Method Summary collapse

Class Method Details

.send(command, pid) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/process_command/signal/sender.rb', line 16

def send(command, pid)
  @delay ||= DEFAULT_DELAY
  command = Command.s2i(command).to_s(2)
  return if command.empty?
  SENDER_LOCK.synchronize do
    while bit = command.slice!(0)
      signal = bit == '0' ? Setting.bit0 : Setting.bit1
      Process.kill(signal, pid)
      sleep @delay
    end
    Process.kill(Setting.control, pid)
  end
end

.set_delay(delay) ⇒ Object



12
13
14
# File 'lib/process_command/signal/sender.rb', line 12

def set_delay(delay)
  @delay = delay
end