3.14. Przeterminowanie wykonania

Problem

Uruchamiamy program lub wątek, który być może wykonywał się będzie bardzo długo, bądź też może pętlić się w nieskończoność; chcielibyśmy mieć możliwość przerwania jego wykonywania.

Rozwiązanie

Awaryjne zakończenie obliczeń, zwane popularnie przeterminowaniem (timeout), można zrealizować za pomocą wbudowanej biblioteki timeout. Argumentami wywołania metody Timeout.timeout są: blok kodowy i maksymalny czas (limit) jego wykonywania w sekundach. Jeżeli wykonywanie bloku skończy się przed upływem tego limitu, metoda zwraca wartość true i nic nadzwyczajnego się nie dzieje; w przeciwnym razie wykonywanie bloku jest kończone i generowany jest wyjątek.

W poniższym przykładzie zainicjowane zostaje wykonanie ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.