The Subscriber
sub run { my ( $self, $callback ) = @_; my $subscriber = $self->subscriber; $subscriber->subscribe( $self->subscribe ); my $watcher = $subscriber->anyevent_watcher( sub { while ( my $msg = $subscriber->receive ) { &$callback( $self, $msg ); } } ); AnyEvent->condvar->recv; } 1;