Sha256: e845caf3e890ce1e922b91284661de4805316c268728268d20dc02d28c6c3fde
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
module Fluent class SystemdInput < Input class PosWriter def initialize(pos_file) @path = pos_file setup end attr_reader :cursor, :path def start return unless path @running = true @thread = Thread.new(&method(:work)) end def shutdown return unless path @running = false thread.join write_pos end def update(c) return unless path lock.synchronize { @cursor = c } end private attr_reader :lock, :thread, :running def setup return unless path @lock = Mutex.new @cursor = IO.read(path).chomp if File.exist?(path) end def work while running write_pos sleep 1 end end def write_pos lock.synchronize do if @written_cursor != cursor file = File.open(path, "w+") file.print cursor file.close @written_cursor = cursor end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-systemd-0.0.3 | lib/fluent/plugin/systemd/pos_writer.rb |