Sha256: be7b813aec960b85f095913b2ce7752749571628456dca72bdde9895ed27dd9f
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true require_relative "./input" module Fusuma module Plugin module Inputs # libinput commands wrapper class TimerInput < Input DEFAULT_INTERVAL = 0.3 def config_param_types { interval: [Float] } end attr_reader :pid def io @io ||= begin reader, writer = create_io @pid = start(reader, writer) reader end end def start(reader, writer) pid = fork do timer_loop(reader, writer) end Process.detach(pid) writer.close pid end def timer_loop(reader, writer) reader.close begin loop do sleep interval writer.puts "timer" end rescue Errno::EPIPE exit 0 rescue => e MultiLogger.error e end end private def create_io IO.pipe end def interval config_params(:interval) || DEFAULT_INTERVAL end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fusuma-2.5.1 | lib/fusuma/plugin/inputs/timer_input.rb |
fusuma-2.5.0 | lib/fusuma/plugin/inputs/timer_input.rb |