X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FObject%2FRemote%2FMiniLoop.pm;h=b74619c83fae571cd564d171bbb5f1ad63e50205;hb=ed5a8a8e0299184b24f57ab38dba1a392a9dc9ec;hp=c5025f3d9181d93e38402a7aa947363e9eec39c8;hpb=9e72f0cf54e92bccdba71eb75037f1cfe4f69f36;p=scpubgit%2FObject-Remote.git 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;