Sha256: a1cf23278241d1845872a41d4f77952cb56e9813ea33fba4f20042e711482fa6
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require_relative './input.rb' 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 :writer 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 StandardError => 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fusuma-2.0.0.pre | lib/fusuma/plugin/inputs/timer_input.rb |