Add timeout to raise exception when Modem#wait is stuck

develop
Guillaume DOTT 2013-09-11 16:38:59 +02:00
parent 7281b8f82d
commit aabb2027b0
1 changed files with 5 additions and 2 deletions

View File

@ -1,5 +1,6 @@
require 'serialport' require 'serialport'
require 'forwardable' require 'forwardable'
require 'timeout'
module Biju module Biju
class Modem class Modem
@ -23,9 +24,11 @@ module Biju
def wait(length: 0) def wait(length: 0)
buffer = '' buffer = ''
Timeout.timeout(10) do
while IO.select([connection], [], [], 0.50) || buffer.length < length while IO.select([connection], [], [], 0.50) || buffer.length < length
buffer << connection.getc.chr buffer << connection.getc.chr
end end
end
buffer buffer
end end