Class: OrigenSim::StderrReader
- Inherits:
-
Thread
- Object
- Thread
- OrigenSim::StderrReader
- Defined in:
- lib/origen_sim/stderr_reader.rb
Instance Attribute Summary collapse
-
#logged_errors ⇒ Object
readonly
Returns the value of attribute logged_errors.
-
#socket ⇒ Object
readonly
Returns the value of attribute socket.
Instance Method Summary collapse
-
#initialize(socket) ⇒ StderrReader
constructor
A new instance of StderrReader.
- #stop ⇒ Object
- #time_since_last_message ⇒ Object
Constructor Details
#initialize(socket) ⇒ StderrReader
Returns a new instance of StderrReader.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/origen_sim/stderr_reader.rb', line 6 def initialize(socket) @socket = socket @continue = true @logged_errors = false @last_message_at = Time.now super do begin while @continue line = @socket.gets if line line = line.chomp if OrigenSim.fail_on_stderr && !line.empty? && !OrigenSim.stderr_string_exceptions.any? { |s| s.is_a?(Regexp) ? s.match?(line) : line =~ /#{s}/i } # We're failing on stderr, so print its results and log as errors if its not an exception. @logged_errors = true Origen.log.error "(STDERR): #{line}", from_origen_sim: true elsif OrigenSim.verbose? Origen.log.info line, from_origen_sim: true else Origen.log.debug line, from_origen_sim: true end @last_message_at = Time.now end end rescue IOError => e unless e. =~ /stream closed/ raise e end end end end |
Instance Attribute Details
#logged_errors ⇒ Object (readonly)
Returns the value of attribute logged_errors.
4 5 6 |
# File 'lib/origen_sim/stderr_reader.rb', line 4 def logged_errors @logged_errors end |
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
4 5 6 |
# File 'lib/origen_sim/stderr_reader.rb', line 4 def socket @socket end |
Instance Method Details
#stop ⇒ Object
38 39 40 |
# File 'lib/origen_sim/stderr_reader.rb', line 38 def stop @continue = false end |
#time_since_last_message ⇒ Object
42 43 44 |
# File 'lib/origen_sim/stderr_reader.rb', line 42 def Time.now - @last_message_at end |