class Fusuma::Plugin::Inputs::TimerInput
libinput commands wrapper
def config_param_types
def config_param_types { interval: [Float] } end
def create_io
def create_io IO.pipe end
def interval
def interval config_params(:interval) || DEFAULT_INTERVAL end
def io
def io @io ||= begin reader, writer = create_io @pid = start(reader, writer) reader end end
def start(reader, writer)
def start(reader, writer) pid = fork do timer_loop(reader, writer) end Process.detach(pid) writer.close pid end
def timer_loop(reader, writer)
def timer_loop(reader, writer) reader.close begin loop do sleep interval writer.puts 'timer' end rescue Errno::EPIPE exit 0 rescue StandardError => e MultiLogger.error e end end