View difference between Paste ID: ipYqUzxc and u67tTPZu
SHOW: | | - or go back to the newest paste.
1
from multiprocessing.pool import Pool
2
from multiprocessing import Event
3
4
import time
5
6
EV = [Event() for e in xrange(11)]
7
8
def echo(i):
9
    EV[i].wait()
10
    time.sleep(0.001)
11
    EV[i+1].set()
12
    return i
13
14
def reset():
15
    for e in EV: e.clear()
16
    EV[0].set()
17
18
def main():
19
    p = Pool(10)
20
21
    reset()
22
    run1 = [a for a in p.imap_unordered(echo, xrange(10))]
23
24
    reset()
25
    run2 = [a for a in p.imap_unordered(echo, xrange(10))]
26
27
    reset()
28
    run3 = [a for a in p.imap_unordered(echo, xrange(10))]
29
30
    reset()
31
    run4 = [a for a in p.imap_unordered(echo, xrange(10))]
32
33
    print( run1 == run2 == run3 == run4 )
34
35
if __name__ == '__main__':
36
    main()