\d.gdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl Z ddl mZddl mZejjZddlmZmZmZmZmZGdd eZeZGd d eZGd d eZdS))Queue SimpleQueue JoinableQueueN)EmptyFull) connection)context)debuginfoFinalizeregister_after_fork is_exitingceZdZddZdZdZdZddZdd Zdd Z d Z d Z dZ dZ dZdZdZdZdZedZedZedZedZd S)rrc|dkrddlm}||_tjd\|_|_||_tj |_ tj dkrd|_n||_|||_d|_|tj dkrt'|t(jdSdS)Nrr) SEM_VALUE_MAXFduplexwin32) synchronizer_maxsizer Pipe_reader_writerLock_rlockosgetpid_opidsysplatform_wlockBoundedSemaphore_sem _ignore_epipe_resetrr _after_forkselfmaxsizectxs '..\python\lib\multiprocessing\queues.py__init__zQueue.__init__%s a<< = = = = = = %/_E%B%B%B" dlhhjj Y[[ <7 " "DKK((**DK((11 " <7 " " e&7 8 8 8 8 8 # "ctj||j|j|j|j|j|j|j|j fSN) r assert_spawningr%rrrrr"r$rr)s r, __getstate__zQueue.__getstate__9sB%%%"DM4< T[$)TZA Ar.c |\|_|_|_|_|_|_|_|_|dSr0) r%rrrrr"r$rr&r)states r, __setstate__zQueue.__setstate__>s=++g5;&&ug66   & &)9)99G::g..$# $ K&&(( !!### ##%%%% ##%%%%$$S)))sAA A 'A=D>>EcN|j|jjz Sr0)rr$_semlock _get_valuer2s r,qsizez Queue.qsize|s }ty1<<>>>>r.c,| Sr0rMr2s r,emptyz Queue.empty::<<r.c>|jjSr0)r$rd_is_zeror2s r,fullz Queue.fullsy!**,,,r.c,|dSr;)rbr2s r, get_nowaitzQueue.get_nowaitsxxr.c.||dSr;)rYr)rVs r, put_nowaitzQueue.put_nowaitsxxU###r.cLd|_|j}|rd|_|dSdS)NT)rFrG)r)closes r,rtz Queue.closes8    DK EGGGGG  r.ctd|jsJd||jr|dSdS)NzQueue.join_thread()zQueue {0!r} not closed)r rFformatrDr2s r, join_threadzQueue.join_threadsc #$$$|BB5<Threadr_feedr<rIr"rrtrr%_on_queue_feeder_errorr$rCdaemonstartrEr _finalize_joinweakrefrefrD_finalize_closerGr2s r,rRzQueue._start_threads2 %&&&  ';,0@+t|14<3E$d&A)%     #  *+++  -..." ' e2T\**+   D  %' \4> * r.ctd|}|%|tddStddS)Nzjoining queue threadz... queue thread joinedz... queue thread already dead)r join)twrthreads r,rzQueue._finalize_joinsY $%%%   KKMMM + , , , , , 1 2 2 2 2 2r.ctd|5|t|ddddS#1swxYwYdS)Nztelling queue thread to quit)r rS _sentinelrT)buffernotemptys r,rzQueue._finalize_closes ,---    MM) $ $ $ OO                     s/AAAc Ttd|j} |j} |j} |j} t } t jdkr|j}|j}nd} |  |s | | n#| wxYw | }|| ur%td||dSt |}| ||n0| |||n#|wxYw#t$rYnwxYwn#t$ru}|r%t|ddtjkrYd}~dStrt!d|Yd}~dS||||Yd}~nd}~wwxYwU)Nz$starting thread to feed data to piperrz%feeder thread got sentinel -- exitingerrnorzerror in queue thread: %s)r rQr[waitpopleftrr r!r^dumps IndexError ExceptiongetattrrEPIPErr )rrrH writelock reader_close writer_close ignore_epipeonerror queue_semnacquirenreleasenwaitbpopleftsentinelwacquirewreleaserVes r,rz Queue._feeds$ 4555## > <7 " " (H (HHH. $- $ ! HJJJJHHJJJJ+&hjj(??!"IJJJ(LNNN(LNNN"F.33C88#+&JsOOOO$HJJJ+ * 3 (  #+$"D $ $ $GAw$:$:ek$I$IFFFFF << $4a888FFFFF%%'''GAsOOOOOOOO# $;. $sx D&! A8- D&8 BD&2D<2D/ D: D DD D"D&!D""D&& F%0!F F ; F  F%c6ddl}|dS)z Private API hook called when feeding data in the background thread raises an exception. For overriding by concurrent.futures. rN) traceback print_exc)rrVrs r,rzQueue._on_queue_feeder_errors( r.r)FTN)__name__ __module__ __qualname__r-r3r7r'r&rYrbrfrirmrorrrtrwr{rR staticmethodrrrrr.r,rr#s9999(AAA  %%% ' ' ' ' $ $ $ $****4???   ---$$$ B33\3\ <$<$\<$|\r.rc6eZdZd dZdZdZd dZdZd ZdS) rrct||||d|_||_dS)N)r+r)rr- Semaphore_unfinished_tasksr?_condr(s r,r-zJoinableQueue.__init__(sA tW#...!$q!1!1]]__ r.cTt||j|jfzSr0)rr3rrr2s r,r3zJoinableQueue.__getstate__-s%!!$''4:t7M*NNNr.czt||dd|dd\|_|_dS)N)rr7rrr5s r,r7zJoinableQueue.__setstate__0s= 4ss,,,-2233Z* D***r.TNc|jrtd|d|j||st|j5|j5|j||j ||j |j dddn #1swxYwYddddS#1swxYwYdSrO)rFrPr$rQrr<rrCrRrBrSrr[rTrUs r,rYzJoinableQueue.put4sf < :8d88899 9y  00 J ^ $ $TZ $ $|#""$$$ L   $ $ $  " * * , , , N ! ! # # #  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s7C A(C4 CC CC CCCc|j5|jdstd|jjr|jddddS#1swxYwYdS)NFz!task_done() called too many times)rrrQrPrdrl notify_allr2s r, task_donezJoinableQueue.task_doneAs Z ( ()11%88 F !DEEE%.7799 ( %%'''  ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sA!A66A:=A:c|j5|jjs|jddddS#1swxYwYdSr0)rrrdrlrr2s r,rzJoinableQueue.joinHs Z " ")2;;== " !!! " " " " " " " " " " " " " " " " " "s8A  AArr) rrrr-r3r7rYrrrr.r,rr&s{%%%% OOO888 $ $ $ $((("""""r.rcXeZdZdZdZdZdZdZdZdZ e e j Z dS) rctjd\|_|_||_|jj|_tj dkr d|_ dS||_ dS)NFrr) r rrrrrrLrMr r!r")r)r+s r,r-zSimpleQueue.__init__Ssc%/_E%B%B%B" dlhhjj \& <7 " "DKKK((**DKKKr.cj|j|jdSr0)rrtrr2s r,rtzSimpleQueue.close\s0  r.c,| Sr0rhr2s r,rizSimpleQueue.empty`rjr.c^tj||j|j|j|jfSr0)r r1rrrr"r2s r,r3zSimpleQueue.__getstate__cs*%%% dlDKEEr.c^|\|_|_|_|_|jj|_dSr0)rrrr"rLrMr5s r,r7zSimpleQueue.__setstate__gs(AF>t|T[$+\& r.c|j5|j}dddn #1swxYwYt|Sr0)rrrJr^r_)r)r`s r,rbzSimpleQueue.getks [ , ,,))++C , , , , , , , , , , , , , , ,$$S)))s .22ct|}|j|j|dS|j5|j|ddddS#1swxYwYdSr0)r^rr"rrHrqs r,rYzSimpleQueue.putqs##C(( ;  L # #C ( ( ( ( ( - - '',,, - - - - - - - - - - - - - - - - - -sA--A14A1N)rrrr-rtrir3r7rbrY classmethodtypes GenericAlias__class_getitem__rr.r,rrQs%%%   FFF'''*** ---$ E$677r.r)__all__r rr>r@r\rrrqueuerr_multiprocessingr r reductionForkingPicklerr^utilr r r rrobjectrrrrrr.r,rs| 4 3 3   #2HHHHHHHHHHHHHH vvvvvFvvvr FHH %"%"%"%"%"E%"%"%"V*8*8*8*8*8&*8*8*8*8*8r.