ó ñUuLc@siddlZddlZddlZdgZd„Zdejfd„ƒYZdefd„ƒYZdS(iÿÿÿÿNtNRLockcOs t||ŽS(N(t_NRLock(targstkwargs((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR sRcBsGeZdZdd„Zdd„Zed„ƒZd„Zd„Z RS(s¥Interface and implementation for Non-Reentrant locks. Derived from RLocks (which are reentrant locks). The default Python base locking type, threading.Lock(), is non-reentrant but it doesn't support any operations other than aquire() and release(), and we'd like to be able to support things like RLocks._is_owned() so that we can "assert" lock ownership assumptions in our code.cCstjj||ƒdS(N(t threadingt_RLockt__init__(tselftverbose((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR+sicCs.|jƒrtdƒ‚ntjj||ƒS(NsRecursive NRLock acquire(t _is_ownedtNRLockExceptionRRtacquire(Rtblocking((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR .s cCs |jƒS(s:A boolean indicating whether the lock is currently locked.(R (R((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pytlocked3sc CsÄd}|j}|s|Sx¤tjƒjƒD]\}}||jkrMq,n|d7}xatj|ƒD]P\}}}}|d|||f7}|r­|d|jƒ7}n|d7}qgWPq,W|S(NtsStack of owner: s File: "%s", line %d,in %ss %ss (t _RLock__ownertsyst_current_framestitemstidentt tracebackt extract_stacktstrip( Rterrbuftownerttidtstacktfilenmtlnotfuncttxt((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyt_debug_lock_release8s"  cCsNytjj|ƒWn3tk rId}||jƒ7}t|ƒ‚nXdS(NsRelease of unacquired lock (RRtreleaset RuntimeErrorRR (RR((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR Ns  N( t__name__t __module__t__doc__tNoneRR tpropertyR RR (((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR#s    R cBseZd„Zd„ZRS(cOs,|r|d|_n d|_||_dS(Ni(tdataR%t_args(RRR((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyRXs cCs t|jƒS(N(tstrR'(R((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyt__str___s(R"R#RR*(((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyR Vs ( RRRt__all__RRRt ExceptionR (((s0/usr/lib/python2.7/vendor-packages/pkg/nrlock.pyts     3