Repository URL to install this package:
|
Version:
4.0.99 ▾
|
ó
EYc @ sn d d l Z d d l Z d d l m Z d e f d YZ d e f d YZ d e f d YZ d S( iÿÿÿÿN( t hubst Semaphorec B s e Z d Z d d Z d Z d Z d Z d Z e d
d Z
d Z e d Z d
Z
d Z e d Z RS( s An unbounded semaphore.
Optionally initialize with a resource *count*, then :meth:`acquire` and
:meth:`release` resources as needed. Attempting to :meth:`acquire` when
*count* is zero suspends the calling greenthread until *count* becomes
nonzero again.
This is API-compatible with :class:`threading.Semaphore`.
It is a context manager, and thus can be used in a with block::
sem = Semaphore(2)
with sem:
do_some_stuff()
If not specified, *value* defaults to 1.
It is possible to limit acquire time::
sem = Semaphore()
ok = sem.acquire(timeout=0.1)
# True if acquired, False if timed out.
i c C s y t | } Wn= t k
rO } d j t | t | } t | n X| d k r d j t | } t | n | | _ t j | _
d S( Ns0 Semaphore() expect value :: int, actual: {0} {1}i s* Semaphore() expect value >= 0, actual: {0}( t intt
ValueErrort formatt typet strt TypeErrort reprt countert collectionst dequet _waiters( t selft valuet et msg( ( sG /home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/semaphore.pyt __init__! s c C s8 | j j t t | | j t | j f } d | S( Ns <%s at %s c=%s _w[%s]>( t __class__t __name__t hext idR t lenR ( R
t params( ( sG /home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/semaphore.pyt __repr__- s c C s) | j j | j t | j f } d | S( Ns <%s c=%s _w[%s]>( R R R R R ( R
R ( ( sG /home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/semaphore.pyt __str__2 s !c C s
| j d k S( s7 Returns true if a call to acquire would block.
i ( R ( R
( ( sG /home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/semaphore.pyt locked6 s c C s t S( sb Returns False; for consistency with
:class:`~eventlet.semaphore.CappedSemaphore`.
( t False( R
( ( sG /home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/semaphore.pyt bounded; s c C s | d k r d } n | d k r<