Python - How to wake up a sleeping process- multiprocessing?

Posted by user1162512 on Stack Overflow See other posts from Stack Overflow or by user1162512
Published on 2014-08-19T09:19:59Z Indexed on 2014/08/19 10:20 UTC
Read the original article Hit count: 180

Filed under:
|

I need to wake up a sleeping process ?

The time (t) for which it sleeps is calculated as t = D/S . Now since s is varying, can increase or decrease, I need to increase/decrease the sleeping time as well. The speed is received over a UDP procotol. So, how do I change the sleeping time of a process, keeping in mind the following:-

If as per the previous speed `S1`, the time to sleep is `(D/S1)` . 
Now the speed is changed, it should now sleep for the new time,ie (D/S2). 
Since, it has already slept for D/S1 time, now it should sleep for D/S2 - D/S1.

How would I do it?

As of right now, I'm just assuming that the speed will remain constant all throughout the program, hence not notifying the process. But how would I do that according to the above condition?

def process2():
    p = multiprocessing.current_process()
    time.sleep(secs1)
    # send some packet1 via UDP
    time.sleep(secs2)
    # send some packet2 via UDP
    time.sleep(secs3)
    # send some packet3 via UDP

Also, as in threads,

1) threading.activeCount(): Returns the number of thread objects that are active.

2) threading.currentThread(): Returns the number of thread objects in the caller's thread control.

3) threading.enumerate(): Returns a list of all thread objects that are currently active.

What are the similar functions for getting activecount, enumerate in multiprocessing?

© Stack Overflow or respective owner

Related posts about python

Related posts about multiprocessing