[issue31977] threading.Condition can not work with threading.Semaphore

2017-11-07 Thread

New submission from 张晓林 :

the python document say Condition work will Locks, like RLock...

but i find it not work with Semaphore, because Condition._is_owned is like this

def _is_owned(self):
# Return True if lock is owned by current_thread.
# This method is called only if _lock doesn't have _is_owned().
if self._lock.acquire(0):
self._lock.release()
return False
else:
return True

this work for RLock, but not work for Semaphore, and Semaphore do not have it's 
own _is_owned implement.

i spend a lot of time on this issue. maybe fix it, or document it out?

--
messages: 305807
nosy: 张晓林
priority: normal
severity: normal
status: open
title: threading.Condition can not work with threading.Semaphore
type: resource usage
versions: Python 3.6

___
Python tracker 
<https://bugs.python.org/issue31977>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue31977] threading.Condition can not work with threading.Semaphore

2017-11-07 Thread

Change by 张晓林 :


--
type: resource usage -> behavior

___
Python tracker 
<https://bugs.python.org/issue31977>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com