;ò ¸N¡Jc@sédZdkZy dkZWn ej oeie=‚nXdklZl Z dk l Z dklZddddd d d d d ddddddgZeiZeiZeiZeiZ[eZeodefd„ƒYZndefd„ƒYZeaea d„Z!d„Z"eZ#d„Z$defd„ƒYZ%d„Z&defd„ƒYZ'd„Z(d efd!„ƒYZ)d"„Z*d#e)fd$„ƒYZ+d%„Z,d&efd'„ƒYZ-d(a.d)d*„Z/eƒa0hZ1hZ2defd+„ƒYZ3d,„Z4d-e3fd.„ƒYZ5d/e3fd0„ƒYZ6d1„Z7d2e3fd3„ƒYZ8d4„Z9d5„Z:d6„Z;d7kl<Z<e6ƒi=Z>yd8kl?Z@Wn ej od9kAl@Z@nXd:„ZBd;„ZCed<jo eCƒndS(=s;Thread module emulating a subset of Java's threading model.N(stimessleep(s format_exc(sdeques activeCounts Conditions currentThreads enumeratesEventsLocksRLocks SemaphoresBoundedSemaphoresThreadsTimers setprofilessettraceslocals stack_sizes_VerbosecBstZed„Zd„ZRS(NcCs$|tjo t}n||_dS(N(sverbosesNones_VERBOSEsselfs_Verbose__verbose(sselfsverbose((s'/home/summariz/public_html/threading.pys__init__'s  cGsE|io7||}dtƒiƒ|f}tii|ƒndS(Ns%s: %s ( sselfs_Verbose__verbosesformatsargss currentThreadsgetNames_syssstderrswrite(sselfsformatsargs((s'/home/summariz/public_html/threading.pys_note,s  (s__name__s __module__sNones__init__s_note(((s'/home/summariz/public_html/threading.pys_Verbose%s cBstZed„Zd„ZRS(NcCsdS(N((sselfsverbose((s'/home/summariz/public_html/threading.pys__init__6scGsdS(N((sselfsargs((s'/home/summariz/public_html/threading.pys_note8s(s__name__s __module__sNones__init__s_note(((s'/home/summariz/public_html/threading.pys_Verbose5s cCs |adS(N(sfuncs _profile_hook(sfunc((s'/home/summariz/public_html/threading.pys setprofile@scCs |adS(N(sfuncs _trace_hook(sfunc((s'/home/summariz/public_html/threading.pyssettraceDscOst||ŽSdS(N(s_RLocksargsskwargs(sargsskwargs((s'/home/summariz/public_html/threading.pysRLockLss_RLockcBs\tZed„Zd„Zdd„ZeZd„Zd„Zd„Z d„Z d „Z RS( NcCs2ti||ƒtƒ|_t|_d|_dS(Ni( s_Verboses__init__sselfsverboses_allocate_locks _RLock__blocksNones _RLock__owners _RLock__count(sselfsverbose((s'/home/summariz/public_html/threading.pys__init__Qs  cCs4|i}d|ii|o |iƒ|ifSdS(Ns <%s(%s, %d)>(sselfs _RLock__ownersowners __class__s__name__sgetNames _RLock__count(sselfsowner((s'/home/summariz/public_html/threading.pys__repr__Ws icCsÂtƒ}|i|jo6|id|_to|id||ƒndSn|ii |ƒ}|o4||_d|_to|id||ƒqºnto|id||ƒn|SdS(Nis!%s.acquire(%s): recursive successs%s.acquire(%s): initial successs%s.acquire(%s): failure( s currentThreadsmesselfs _RLock__owners _RLock__counts __debug__s_notesblockings _RLock__blocksacquiresrc(sselfsblockingsmesrc((s'/home/summariz/public_html/threading.pysacquire^s   cCs“|itƒj otdƒ‚n|id|_}| o5t|_|iiƒt o|i d|ƒqnt o|i d|ƒndS(Nscannot release un-aquired lockis%s.release(): final releases%s.release(): non-final release( sselfs _RLock__owners currentThreads RuntimeErrors _RLock__countscountsNones _RLock__blocksreleases __debug__s_note(sselfscount((s'/home/summariz/public_html/threading.pysreleasers  cCs|iƒdS(N(sselfsrelease(sselfstsvstb((s'/home/summariz/public_html/threading.pys__exit__scCsJ|\}}|iiƒ||_||_to|id|ƒndS(Ns%s._acquire_restore()( scountsownersselfs _RLock__blocksacquires _RLock__counts _RLock__owners __debug__s_note(sselfs.2scountsowner((s'/home/summariz/public_html/threading.pys_acquire_restore„s    cCsZto|id|ƒn|i}d|_|i}t|_|ii ƒ||fSdS(Ns%s._release_save()i( s __debug__sselfs_notes _RLock__countscounts _RLock__ownersownersNones _RLock__blocksrelease(sselfscountsowner((s'/home/summariz/public_html/threading.pys _release_save‹s     cCs|itƒjSdS(N(sselfs _RLock__owners currentThread(sself((s'/home/summariz/public_html/threading.pys _is_owned•s( s__name__s __module__sNones__init__s__repr__sacquires __enter__sreleases__exit__s_acquire_restores _release_saves _is_owned(((s'/home/summariz/public_html/threading.pys_RLockOs      cOst||ŽSdS(N(s _Conditionsargsskwargs(sargsskwargs((s'/home/summariz/public_html/threading.pys Condition™ss _ConditioncBsntZeed„Zd„Zd„Zd„Zd„Zd„Zd„Z ed„Z d d „Z d „Z RS( NcCsÊti||ƒ|tjo tƒ}n||_|i|_|i |_ y|i |_ Wnt j onXy|i |_ Wnt j onXy|i |_ Wnt j onXg|_dS(N(s_Verboses__init__sselfsverboseslocksNonesRLocks_Condition__locksacquiresreleases _release_savesAttributeErrors_acquire_restores _is_owneds_Condition__waiters(sselfslocksverbose((s'/home/summariz/public_html/threading.pys__init__žs&     cCs|iiƒSdS(N(sselfs_Condition__locks __enter__(sself((s'/home/summariz/public_html/threading.pys __enter__·scGs|ii|ŒSdS(N(sselfs_Condition__locks__exit__sargs(sselfsargs((s'/home/summariz/public_html/threading.pys__exit__ºscCsd|it|iƒfSdS(Ns(sselfs_Condition__lockslens_Condition__waiters(sself((s'/home/summariz/public_html/threading.pys__repr__½scCs|iiƒdS(N(sselfs_Condition__locksrelease(sself((s'/home/summariz/public_html/threading.pys _release_saveÀscCs|iiƒdS(N(sselfs_Condition__locksacquire(sselfsx((s'/home/summariz/public_html/threading.pys_acquire_restoreÃscCs0|iidƒo|iiƒtSntSdS(Ni(sselfs_Condition__locksacquiresreleasesFalsesTrue(sself((s'/home/summariz/public_html/threading.pys _is_ownedÆs cCsŠ|iƒ otdƒ‚ntƒ}|iƒ|ii|ƒ|iƒ}z(|t jo)|iƒt o|i d|ƒqtnïtƒ|}d}xfto^|idƒ}|oPn|tƒ}|djoPnt|d|dƒ}t|ƒqœW| oLt o|i d||ƒny|ii|ƒWqttj oqtXnt o|i d||ƒnWd|i|ƒXdS( Nscannot wait on un-aquired locks%s.wait(): got itf0.00050000000000000001iif0.050000000000000003s%s.wait(%s): timed outs%s.wait(%s): got it(sselfs _is_owneds RuntimeErrors_allocate_lockswaitersacquires_Condition__waiterssappends _release_saves saved_statestimeoutsNones __debug__s_notes_timesendtimesdelaysTruesgotits remainingsmins_sleepsremoves ValueErrors_acquire_restore(sselfstimeoutsdelaysgotitswaiters remainings saved_statesendtime((s'/home/summariz/public_html/threading.pyswaitÏsD         icCsÌ|iƒ otdƒ‚n|i}|| }| o#to|id|ƒndSn|id|||djodpdƒx?|D]7}|i ƒy|i |ƒWqt j oqXqWdS(Ns cannot notify on un-aquired locks%s.notify(): no waiterss"%s.notify(): notifying %d waiter%sisss( sselfs _is_owneds RuntimeErrors_Condition__waiterssnswaiterss __debug__s_noteswaitersreleasesremoves ValueError(sselfsnswaiters_Condition__waitersswaiters((s'/home/summariz/public_html/threading.pysnotifyùs"   cCs|it|iƒƒdS(N(sselfsnotifyslens_Condition__waiters(sself((s'/home/summariz/public_html/threading.pys notifyAll s( s__name__s __module__sNones__init__s __enter__s__exit__s__repr__s _release_saves_acquire_restores _is_ownedswaitsnotifys notifyAll(((s'/home/summariz/public_html/threading.pys _Conditionœs      * cOst||ŽSdS(N(s _Semaphoresargsskwargs(sargsskwargs((s'/home/summariz/public_html/threading.pys Semaphoress _SemaphorecBs;tZded„Zdd„ZeZd„Zd„ZRS(NicCsL|djotdƒ‚nti||ƒttƒƒ|_||_ dS(Nis$semaphore initial value must be >= 0( svalues ValueErrors_Verboses__init__sselfsverboses ConditionsLocks_Semaphore__conds_Semaphore__value(sselfsvaluesverbose((s'/home/summariz/public_html/threading.pys__init__s  cCsµt}|iiƒxŠ|idjoB| oPnto|id|||iƒn|ii ƒqW|id|_to|id||iƒnt }|ii ƒ|SdS(Nis)%s.acquire(%s): blocked waiting, value=%sis%s.acquire: success, value=%s( sFalsesrcsselfs_Semaphore__condsacquires_Semaphore__valuesblockings __debug__s_noteswaitsTruesrelease(sselfsblockingsrc((s'/home/summariz/public_html/threading.pysacquires"    cCs\|iiƒ|id|_to|id||iƒn|iiƒ|iiƒdS(Nis%s.release: success, value=%s(sselfs_Semaphore__condsacquires_Semaphore__values __debug__s_notesnotifysrelease(sself((s'/home/summariz/public_html/threading.pysrelease2s   cCs|iƒdS(N(sselfsrelease(sselfstsvstb((s'/home/summariz/public_html/threading.pys__exit__;s(s__name__s __module__sNones__init__sacquires __enter__sreleases__exit__(((s'/home/summariz/public_html/threading.pys _Semaphores   cOst||ŽSdS(N(s_BoundedSemaphoresargsskwargs(sargsskwargs((s'/home/summariz/public_html/threading.pysBoundedSemaphore?ss_BoundedSemaphorecBs&tZdZded„Zd„ZRS(s6Semaphore that checks that # releases is <= # acquiresicCs ti|||ƒ||_dS(N(s _Semaphores__init__sselfsvaluesverboses_initial_value(sselfsvaluesverbose((s'/home/summariz/public_html/threading.pys__init__DscCs1|i|ijo td‚nti|ƒSdS(Ns!Semaphore released too many times(sselfs_Semaphore__values_initial_values ValueErrors _Semaphoresrelease(sself((s'/home/summariz/public_html/threading.pysreleaseHs (s__name__s __module__s__doc__sNones__init__srelease(((s'/home/summariz/public_html/threading.pys_BoundedSemaphoreBs cOst||ŽSdS(N(s_Eventsargsskwargs(sargsskwargs((s'/home/summariz/public_html/threading.pysEventNss_EventcBs;tZed„Zd„Zd„Zd„Zed„ZRS(NcCs/ti||ƒttƒƒ|_t|_dS(N( s_Verboses__init__sselfsverboses ConditionsLocks _Event__condsFalses _Event__flag(sselfsverbose((s'/home/summariz/public_html/threading.pys__init__UscCs |iSdS(N(sselfs _Event__flag(sself((s'/home/summariz/public_html/threading.pysisSetZscCs<|iiƒzt|_|iiƒWd|iiƒXdS(N(sselfs _Event__condsacquiresTrues _Event__flags notifyAllsrelease(sself((s'/home/summariz/public_html/threading.pysset]s   cCs/|iiƒz t|_Wd|iiƒXdS(N(sselfs _Event__condsacquiresFalses _Event__flagsrelease(sself((s'/home/summariz/public_html/threading.pyscleares   cCsE|iiƒz#|i o|ii|ƒnWd|iiƒXdS(N(sselfs _Event__condsacquires _Event__flagswaitstimeoutsrelease(sselfstimeout((s'/home/summariz/public_html/threading.pyswaitls   (s__name__s __module__sNones__init__sisSetssetsclearswait(((s'/home/summariz/public_html/threading.pys_EventQs     is Thread-%dcCstda|tSdS(Ni(s_counterstemplate(stemplate((s'/home/summariz/public_html/threading.pys_newnamevs cBs³tZeZeiZeeefeed„Zd„Z d„Z d„Z d„Z d„Z d„Zd„Zd „Zed „Zd „Zd „Zd „Zd„Zd„ZRS(NcCs¾|tjp td‚ti||ƒ|tjo h}n||_ t |pt ƒƒ|_ ||_||_|iƒ|_t|_t|_ttƒƒ|_t|_ti|_dS(Ns#group argument must be None for now(sgroupsNonesAssertionErrors_Verboses__init__sselfsverboseskwargsstargets_Thread__targetsstrsnames_newnames _Thread__namesargss _Thread__argss_Thread__kwargss _set_daemons_Thread__daemonicsFalses_Thread__starteds_Thread__stoppeds ConditionsLocks_Thread__blocksTrues_Thread__initializeds_syssstderrs_Thread__stderr(sselfsgroupstargetsnamesargsskwargssverbose((s'/home/summariz/public_html/threading.pys__init__Œs        cCstƒiƒSdS(N(s currentThreadsisDaemon(sself((s'/home/summariz/public_html/threading.pys _set_daemonŸscCsx|ip td‚d}|io d}n|io d}n|io|d}nd|ii|i |fSdS(Ns Thread.__init__() was not calledsinitialsstartedsstoppeds daemons <%s(%s, %s)>( sselfs_Thread__initializedsAssertionErrorsstatuss_Thread__starteds_Thread__stoppeds_Thread__daemonics __class__s__name__s _Thread__name(sselfsstatus((s'/home/summariz/public_html/threading.pys__repr__£s     cCs•|i otdƒ‚n|iotdƒ‚nto|id|ƒntiƒ|t|y|iƒWn)|io ttjodSn‚nXdS(N(sselfs_Thread__bootstrap_inners_Thread__daemonics_syssNone(sself((s'/home/summariz/public_html/threading.pys __bootstrapÀs c Cs;zõt|_tiƒ|ttƒ