http://www.perlmonks.org?node_id=1030111


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.