Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Stop,Suspend,Resume By Pid

by sundialsvc4 (Abbot)
on Apr 23, 2013 at 11:33 UTC ( #1030111=note: print w/replies, xml ) Need Help??


in reply to Stop,Suspend,Resume By Pid

One thought about “stop / suspend / resume” functionality is that you don't know exactly what the process is doing at the moment you suspe

roblem exists with resum

... it just freezes in its tracks, not necessarily at what you would consider to be an appropriate stopping po

So, I think, what you really want to do is to use some kind of a semaphore system, like a traffic light.   Each process, during its usual work-cycle, periodically tests to see if the light is red.   If so, it pauses, in an orderly fashion, perhaps indicating through another semaphore that it has now done so, and waits for the light to turn green.   Ditto for indicating that the process should terminate itself.   It will not do so “instantly,” but it will do so very quickly and in an orderly fashion.   When pausing, it should do this by blocking on an appropriate (Perl ...) operating-system mutual exclusion object, so that it does not consume CPU time while waiting.   There are many ways to implement this.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1030111]
help
Chatterbox?
[ambrus]: Like <c>{ package AnyEvent::Impl:: Prima; use Prima; sub io{ my($s,%r)=@_; Prima::File->new( file=>$r{fh},mask =>("w"eq$r{poll}? fe::Write():fe:: Read())|fe:: Exception,onRead =>$r{cb},onWrite =>$r{cb}, onException=>$r{cb }) } sub timer { ... } push @AnyEvent::REGI
[ambrus]: argh, too long, let me try on scratchpad
[Corion]: . o O ( I seem to have improved my skills of getting other people to write code for me )
[ambrus]: ambrus's scratchpad
[ambrus]: Also, I was wrong, apparently you have to support both periodic and one-shot timers in an AnyEvent backend

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2016-12-08 12:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (141 votes). Check out past polls.