forked from irr/python-labs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanager.py
executable file
·40 lines (31 loc) · 851 Bytes
/
manager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from multiprocessing import Process, Manager, current_process
import os, time, signal, sys
def f(d, l):
def _sh(sig, _):
if sig == signal.SIGTERM:
print "_sh -> c: {0}, p: {1}".format(os.getpid(), os.getppid())
sys.exit(0)
signal.signal(signal.SIGTERM, _sh)
d[1] = '1'
d['2'] = 2
d[0.25] = None
l.reverse()
print "f -> c: {0}, p: {1}".format(os.getpid(), os.getppid())
try:
while True:
time.sleep(1000)
finally:
print "exiting..."
def main(d, l):
print "main -> c: {0}, p: {1}".format(os.getpid(), os.getppid())
p = Process(target=f, args=(d, l))
p.start()
p.join(2)
p.terminate()
print d
print l
if __name__ == '__main__':
manager = Manager()
d = manager.dict()
l = manager.list(range(10))
main(d, l)