U vi7@sXddlmZddlmZmZddlmZddlmZddl m Z GdddZ dgZ d S) )deque) ConditionLock)Deque) PriorityQueue) ScheduledItemc@sFeZdZddddZedddZedddd Zddd d ZdS) TrampolineN)returncCs&d|_t|_t|_t|j|_dS)NT)_idler_queuer_lockr _conditionselfrO/opt/alt/python38/lib/python3.8/site-packages/reactivex/scheduler/trampoline.py__init__ szTrampoline.__init__c Cs$|j|jW5QRSQRXdS)N)r r rrrridleszTrampoline.idle)itemr cCsz|j8|j||jr"d|_n|jW5QRdSW5QRXz |W5|jd|_|jW5QRXXdS)NFT)r r enqueuer rnotifyclear_run)rrrrrruns   zTrampoline.runc Cst}|jFt|jdkrN|j}|j|jjkrN|j| |qqNqW5QRXt|dkr~| }| sX| qX|jPt|jdkrW5QRq|j}|j|jj }|dkr|j|W5QRXqdS)Nrg)rr lenr peekZduetimeZ schedulernowdequeueappendpopleftZ is_cancelledZinvoke total_secondsrwait)rreadyrsecondsrrrr$s&       zTrampoline._run) __name__ __module__ __qualname__rboolrrrrrrrrr sr N) collectionsr threadingrrtypingrZ reactivex.internal.priorityqueuerZ scheduleditemrr __all__rrrrs    4