Class: LogStash::Filters::Grok::RubyTimeout

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/filters/grok.rb

Instance Method Summary collapse

Constructor Details

#initialize(timeout_millis) ⇒ RubyTimeout

Returns a new instance of RubyTimeout.



542
543
544
545
546
547
# File 'lib/logstash/filters/grok.rb', line 542

def initialize(timeout_millis)
  # divide by float to allow fractional seconds, the Timeout class timeout value is in seconds but the underlying
  # executor resolution is in microseconds so fractional second parameter down to microseconds is possible.
  # see https://github.com/jruby/jruby/blob/9.2.7.0/core/src/main/java/org/jruby/ext/timeout/Timeout.java#L125
  @timeout_seconds = timeout_millis / 1000.0
end

Instance Method Details

#exec(&block) ⇒ Object



549
550
551
# File 'lib/logstash/filters/grok.rb', line 549

def exec(&block)
  Timeout.timeout(@timeout_seconds, TimeoutError, &block)
end