Ruby – Timeout

Jeg bruger Ruby til, at teste mine embedded C kode, og har derfor en RS232 forbindelse til mit board.

I dag havde jeg et lille problem med, at når der var en fejl i den embedded kode, og jeg lavede mine accesses fra Ruby over RS2332 porten, så hang Ruby uden at komme videre. Det betød at mine test-suite aldrig blev færdig, og jeg aldrig fik en mail om, at der var noget galt.

Derfor havde jeg brug for, at Ruby lavede en break, når RS232 porten ikke kunne accesses i over 10 sekunder.

Jeg fandt, at Ruby har en smart lille objekt, der hedder Timeout som kan break’e kode der hænger.

Nedenstående eksempel viser hvordan, man laver en timeout efter 10 sekunder.

Timeout.timeout(10) do

puts rs232.read

end

 

Leave a Reply

Your email address will not be published. Required fields are marked *