From 0acef15c25d618db82643b52475dbbfc52b27a13 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Thu, 14 Nov 2013 15:52:56 +0000 Subject: trap errors and ignore --- lib/HomePanel/Driver.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/HomePanel/Driver.pm b/lib/HomePanel/Driver.pm index 20847d9..4cce5ee 100644 --- a/lib/HomePanel/Driver.pm +++ b/lib/HomePanel/Driver.pm @@ -10,6 +10,7 @@ use WebService::TFL::Bus::Request; use WebService::TFL::TubeStatus; use HomePanel::Render; use Types::Path::Tiny qw(AbsFile AbsPath); +use Try::Tiny; use namespace::autoclean; has loop => ( is => 'lazy' ); @@ -126,7 +127,9 @@ sub _new_timer { my $timer = IO::Async::Timer::Periodic->new( interval => $interval, first_interval => 0, - on_tick => $code, + on_tick => sub { + try { $code->(); } catch { warn "Problem: $_; ignoring" } + }, reschedule => 'drift', ); $self->loop->add($timer); -- cgit v1.2.3