X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote%2FMiniLoop.pm;h=b74619c83fae571cd564d171bbb5f1ad63e50205;hp=c5025f3d9181d93e38402a7aa947363e9eec39c8;hb=6c597351edfa3ed86fc06b7be3165b334bf93784;hpb=e441f00ec2896d31dae9f06e8735ac8343a16f22 diff --git a/lib/Object/Remote/MiniLoop.pm b/lib/Object/Remote/MiniLoop.pm index c5025f3..b74619c 100644 --- a/lib/Object/Remote/MiniLoop.pm +++ b/lib/Object/Remote/MiniLoop.pm @@ -50,6 +50,21 @@ sub loop_once { } } +sub want_run { + my ($self) = @_; + $self->{want_running}++; +} + +sub run_while_wanted { + my ($self) = @_; + $self->loop_once while $self->{want_running}; +} + +sub want_stop { + my ($self) = @_; + $self->{want_running}-- if $self->{want_running}; +} + sub run { my ($self) = @_; local $self->{is_running} = 1;