X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=lib%2FApp%2FMPD%2FFeeder.pm;fp=lib%2FApp%2FMPD%2FFeeder.pm;h=36bf29d0fd3c643be97397741ca672e3c6dc3455;hb=f5de4154d0110183daa442faefa4c746a14a7023;hp=8561cf8206eeae69dc02596cb73c5da7cb18d7a8;hpb=94175e21e2271b78ab5693eed528ebe6f486365b;p=mpd-feeder.git diff --git a/lib/App/MPD/Feeder.pm b/lib/App/MPD/Feeder.pm index 8561cf8..36bf29d 100644 --- a/lib/App/MPD/Feeder.pm +++ b/lib/App/MPD/Feeder.pm @@ -346,23 +346,25 @@ method pulse { $log->trace('got out of idle'); - if ( $idler->is_done ) { - my $result = $idler->get; - undef $idler; - if ( ref $result and $result->{changed} ) { - my $changed = $result->{changed}; - $changed = [$changed] unless ref $changed; - - $mpd->emit($_) for @$changed; + if ($idler) { + if ( $idler->is_done ) { + my $result = $idler->get; + undef $idler; + if ( ref $result and $result->{changed} ) { + my $changed = $result->{changed}; + $changed = [$changed] unless ref $changed; + + $mpd->emit($_) for @$changed; + } + } + elsif ( $idler->is_cancelled ) { + $log->trace("idle was cancelled"); + undef $idler; + } + elsif ( $idler->is_failed ) { + $log->warn("idle failed: ".$idler->failure); + undef $idler; } - } - elsif ( $idler->is_cancelled ) { - $log->trace("idle was cancelled"); - undef $idler; - } - elsif ( $idler->is_failed ) { - $log->warn("idle failed: ".$idler->failure); - undef $idler; } $mpd->loop->stop;