New submission from Misko Dzamba <mouse9...@gmail.com>:

I get unexpected behavior from Condition when using a Manager. I expected that 
if I call Condition.acquire() in one thread (or process) and then call 
.acquire() if another thread (or process) without first releasing the condition 
that it should block. However it seems like Condition.acquire() never blocks... 

from multiprocessing import Pool,Manager
import time

def f(x):
    cv,t=x
    cv.acquire()
    print(t,"Got cv")
    return 

if __name__ == '__main__':
    m=Manager()
    cv=m.Condition(m.RLock())
    p = Pool(5)
    print(p.map(f, [ (cv,x) for x in range(10) ]))

----------
messages: 371146
nosy: Misko Dzamba
priority: normal
severity: normal
status: open
title: Default RLock does not work well for Manager Condition
type: behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40934>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to