piliguori's picture
update examples
cdcab39
raw
history blame
383 Bytes
def get(self, block=1):
if block:
self.esema.acquire()
elif not self.esema.acquire(0):
raise Empty
self.mutex.acquire()
release_esema = True
try:
was_full = self._full()
item = self._get()
if was_full:
self.fsema.release()
release_esema = not self._empty()
finally:
if release_esema:
self.esema.release()
self.mutex.release()
return item