选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
U e5dý~ã@sdddgZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z m Z ddlmZd Zd Zd Zd Ze ¡Zd d„Zdd„ZGdd„deƒZGdd„dƒZdd„ZGdd„deƒZd+dd„Zdd„ZGdd „d eƒZ Gd!d„de!ƒZ"Gd"d#„d#e!ƒZ#e#Z$Gd$d%„d%e#ƒZ%Gd&d'„d'e!ƒZ&Gd(d)„d)e&ƒZ'Gd*d„de"ƒZ(dS),ÚPoolÚ ThreadPooléN)ÚEmptyé)Úutil)Ú get_contextÚ TimeoutError)ÚwaitÚINITÚRUNÚCLOSEÚ TERMINATEcCs tt|ŽƒS©N)ÚlistÚmap©Úargs©rú,/usr/lib64/python3.8/multiprocessing/pool.pyÚmapstar/srcCstt |d|d¡ƒS)Nrr)rÚ itertoolsÚstarmaprrrrÚ starmapstar2src@seZdZdd„Zdd„ZdS)ÚRemoteTracebackcCs ||_dSr©Útb)ÚselfrrrrÚ__init__:szRemoteTraceback.__init__cCs|jSrr©rrrrÚ__str__<szRemoteTraceback.__str__N)Ú__name__Ú __module__Ú __qualname__rrrrrrr9src@seZdZdd„Zdd„ZdS)ÚExceptionWithTracebackcCs0t t|ƒ||¡}d |¡}||_d||_dS)NÚz """ %s""")Ú tracebackÚformat_exceptionÚtypeÚjoinÚexcr)rr)rrrrr@s zExceptionWithTraceback.__init__cCst|j|jffSr)Ú rebuild_excr)rrrrrÚ __reduce__Esz!ExceptionWithTraceback.__reduce__N)r r!r"rr+rrrrr#?sr#cCst|ƒ|_|Sr)rÚ __cause__)r)rrrrr*Hs r*cs0eZdZdZ‡fdd„Zdd„Zdd„Z‡ZS)ÚMaybeEncodingErrorzVWraps possible unpickleable errors, so they can be safely sent through the socket.cs.t|ƒ|_t|ƒ|_tt|ƒ |j|j¡dSr)Úreprr)ÚvalueÚsuperr-r)rr)r/©Ú __class__rrrTs  zMaybeEncodingError.__init__cCsd|j|jfS)Nz(Error sending result: '%s'. Reason: '%s')r/r)rrrrrYsÿzMaybeEncodingError.__str__cCsd|jj|fS)Nz<%s: %s>)r2r rrrrÚ__repr__]szMaybeEncodingError.__repr__)r r!r"Ú__doc__rrr3Ú __classcell__rrr1rr-Ps r-rFc CsÌ|dk r(t|tƒr|dks(td |¡ƒ‚|j}|j}t|dƒrR|j ¡|j  ¡|dk rb||Žd}|dks~|�rº||k�rºz |ƒ} Wn(t t fk r°t   d¡Y�qºYnX| dkrÈt   d¡�qº| \} } } } }zd| | |Žf}WnHtk �r0}z(|�r| tk �rt||jƒ}d|f}W5d}~XYnXz|| | |fƒWnRtk �r–}z2t||dƒ}t   d |¡|| | d|ffƒW5d}~XYnXd} } }} } }|d7}qft   d |¡dS) NrzMaxtasks {!r} is not validÚ_writerrz)worker got EOFError or OSError -- exitingzworker got sentinel -- exitingTFz0Possible encoding error while sending result: %szworker exiting after %d tasks)Ú isinstanceÚintÚAssertionErrorÚformatÚputÚgetÚhasattrr6ÚcloseÚ_readerÚEOFErrorÚOSErrorrÚdebugÚ ExceptionÚ_helper_reraises_exceptionr#Ú __traceback__r-)ÚinqueueÚoutqueueÚ initializerÚinitargsZmaxtasksÚwrap_exceptionr;r<Z completedÚtaskÚjobÚiÚfuncrÚkwdsÚresultÚeÚwrappedrrrÚworkerasNÿ        ÿ$ rScCs|‚dS)z@Pickle-able helper function for use by _guarded_task_generation.Nr)ZexrrrrDŽsrDcs2eZdZdZddœ‡fdd„ Z‡fdd„Z‡ZS)Ú _PoolCachezò Class that implements a cache for the Pool class that will notify the pool management threads every time the cache is emptied. The notification is done by the use of a queue that is provided when instantiating the cache. N©Únotifiercs||_tƒj||ŽdSr)rVr0r)rrVrrOr1rrr�sz_PoolCache.__init__cs tƒ |¡|s|j d¡dSr)r0Ú __delitem__rVr;)rÚitemr1rrrW¡s z_PoolCache.__delitem__)r r!r"r4rrWr5rrr1rrT–srTc@s†eZdZdZdZedd„ƒZdLdd„Zej e fd d „Z d d „Z d d„Z edd„ƒZedd„ƒZdd„Zedd„ƒZedd„ƒZdd„Zdd„Zdifdd„ZdMdd „ZdNd!d"„ZdOd#d$„Zd%d&„ZdPd(d)„ZdQd*d+„Zdiddfd,d-„ZdRd.d/„ZdSd0d1„ZedTd2d3„ƒZe d4d5„ƒZ!ed6d7„ƒZ"ed8d9„ƒZ#ed:d;„ƒZ$dd?„Z&d@dA„Z'dBdC„Z(edDdE„ƒZ)e dFdG„ƒZ*dHdI„Z+dJdK„Z,dS)UrzS Class which supports an async version of applying functions to arguments. TcOs |j||ŽSr©ÚProcess)ÚctxrrOrrrrZ³sz Pool.ProcessNrcCsg|_t|_|ptƒ|_| ¡t ¡|_|j ¡|_ t |j d�|_ ||_ ||_ ||_|dkrjt ¡phd}|dkrztdƒ‚|dk r’t|ƒs’tdƒ‚||_z | ¡WnHtk rì|jD]}|jdkrº| ¡qº|jD] }| ¡qØ‚YnX| ¡}tjtj|j |j|j|j|j|j|j |j!|j |j|j |j"||j fd�|_#d|j#_$t%|j#_|j# &¡tjtj'|j|j(|j!|j|j fd�|_)d|j)_$t%|j)_|j) &¡tjtj*|j!|j+|j fd�|_,d|j,_$t%|j,_|j, &¡t-j.||j/|j|j |j!|j|j |j#|j)|j,|j f dd�|_0t%|_dS) NrUrz&Number of processes must be at least 1zinitializer must be a callable©ÚtargetrTé)rZ exitpriority)1Ú_poolr Ú_staterÚ_ctxÚ _setup_queuesÚqueueÚ SimpleQueueÚ _taskqueueÚ_change_notifierrTÚ_cacheÚ_maxtasksperchildÚ _initializerÚ _initargsÚosÚ cpu_countÚ ValueErrorÚcallableÚ TypeErrorÚ _processesÚ_repopulate_poolrCÚexitcodeÚ terminater(Ú_get_sentinelsÚ threadingZThreadrÚ_handle_workersrZÚ_inqueueÚ _outqueueÚ_wrap_exceptionÚ_worker_handlerÚdaemonr ÚstartÚ _handle_tasksÚ _quick_putÚ _task_handlerÚ_handle_resultsÚ _quick_getÚ_result_handlerrZFinalizeÚ_terminate_poolÚ _terminate)rÚ processesrHrIÚmaxtasksperchildÚcontextÚpÚ sentinelsrrrr·s–          ýþ  ÿþ þ þûz Pool.__init__cCs>|j|kr:|d|›�t|d�t|ddƒdk r:|j d¡dS)Nz&unclosed running multiprocessing pool )Úsourcerf)r`ÚResourceWarningÚgetattrrfr;)rZ_warnr rrrÚ__del__s  ÿz Pool.__del__c Cs0|j}d|j›d|j›d|j›dt|jƒ›d� S)Nú<Ú.z state=z pool_size=ú>)r2r!r"r`Úlenr_)rÚclsrrrr3sz Pool.__repr__cCs|jjg}|jjg}||•Sr)rxr?rf)rZtask_queue_sentinelsZself_notifier_sentinelsrrrrts  zPool._get_sentinelscCsdd„|DƒS)NcSsg|]}t|dƒr|j‘qS)Úsentinel)r=r“)Ú.0rSrrrÚ s ÿz.Pool._get_worker_sentinels..r©ZworkersrrrÚ_get_worker_sentinelssÿzPool._get_worker_sentinelscCsPd}ttt|ƒƒƒD]6}||}|jdk rt d|¡| ¡d}||=q|S)z�Cleanup after any worker processes which have exited due to reaching their specified lifetime. Returns True if any workers were cleaned up. FNúcleaning up worker %dT)ÚreversedÚranger‘rrrrBr()ÚpoolZcleanedrMrSrrrÚ_join_exited_workerss zPool._join_exited_workersc Cs0| |j|j|j|j|j|j|j|j|j |j ¡ Sr) Ú_repopulate_pool_staticrarZrpr_rwrxrirjrhryrrrrrq.s úzPool._repopulate_poolc Csft|t|ƒƒD]P} ||t|||||| fd�} | j dd¡| _d| _|  ¡| | ¡t  d¡qdS)z€Bring the number of pool processes up to the specified number, for use after reaping workers which have exited. r\rZZ PoolWorkerTz added workerN) ršr‘rSÚnameÚreplacer{r|ÚappendrrB) r[rZr…r›rFrGrHrIr†rJrMÚwrrrr�7sýÿ zPool._repopulate_pool_staticc Cs*t |¡r&t |||||||||| ¡ dS)zEClean up any exited workers and start replacements for them. N)rrœr�) r[rZr…r›rFrGrHrIr†rJrrrÚ_maintain_poolJs  ýzPool._maintain_poolcCs4|j ¡|_|j ¡|_|jjj|_|jjj|_ dSr) rardrwrxr6Úsendr~r?Úrecvr�rrrrrbVs   zPool._setup_queuescCs|jtkrtdƒ‚dS)NzPool not running)r`r rmrrrrÚ_check_running\s zPool._check_runningcCs| |||¡ ¡S)zT Equivalent of `func(*args, **kwds)`. Pool must be running. )Ú apply_asyncr<)rrNrrOrrrÚapply`sz Pool.applycCs| ||t|¡ ¡S)zx Apply `func` to each element in `iterable`, collecting the results in a list that is returned. )Ú _map_asyncrr<©rrNÚiterableÚ chunksizerrrrgszPool.mapcCs| ||t|¡ ¡S)zÌ Like `map()` method but the elements of the `iterable` are expected to be iterables as well and will be unpacked as arguments. Hence `func` and (a, b) becomes func(a, b). )r¨rr<r©rrrrnsz Pool.starmapcCs| ||t|||¡S)z= Asynchronous version of `starmap()` method. )r¨r©rrNrªr«ÚcallbackÚerror_callbackrrrÚ starmap_asyncvs ÿzPool.starmap_asyncc csjz,d}t|ƒD]\}}||||fifVqWn8tk rd}z||dt|fifVW5d}~XYnXdS)zšProvides a generator of tasks for imap and imap_unordered with appropriate handling for iterables which throw exceptions during iteration.éÿÿÿÿrN)Ú enumeraterCrD)rZ result_jobrNrªrMÚxrQrrrÚ_guarded_task_generation~s zPool._guarded_task_generationrcCs–| ¡|dkr:t|ƒ}|j | |j||¡|jf¡|S|dkrPtd |¡ƒ‚t   |||¡}t|ƒ}|j | |jt |¡|jf¡dd„|DƒSdS)zP Equivalent of `map()` -- can be MUCH slower than `Pool.map()`. rzChunksize must be 1+, not {0:n}css|]}|D] }|Vq qdSrr©r”ÚchunkrXrrrÚ ¤szPool.imap..N) r¥Ú IMapIteratorrer;r³Ú_jobÚ _set_lengthrmr:rÚ _get_tasksr©rrNrªr«rPÚ task_batchesrrrÚimap‰s4þÿÿÿþüÿz Pool.imapcCs–| ¡|dkr:t|ƒ}|j | |j||¡|jf¡|S|dkrPtd |¡ƒ‚t   |||¡}t|ƒ}|j | |jt |¡|jf¡dd„|DƒSdS)zL Like `imap()` method but ordering of results is arbitrary. rzChunksize must be 1+, not {0!r}css|]}|D] }|Vq qdSrrr´rrrr¶Àsz&Pool.imap_unordered..N) r¥ÚIMapUnorderedIteratorrer;r³r¸r¹rmr:rrºrr»rrrÚimap_unordered¦s0þÿÿþüÿzPool.imap_unorderedcCs6| ¡t|||ƒ}|j |jd|||fgdf¡|S)z; Asynchronous version of `apply()` method. rN)r¥Ú ApplyResultrer;r¸)rrNrrOr­r®rPrrrr¦Âs zPool.apply_asynccCs| ||t|||¡S)z9 Asynchronous version of `map()` method. )r¨rr¬rrrÚ map_asyncÌsÿzPool.map_asyncc Csž| ¡t|dƒst|ƒ}|dkrJtt|ƒt|jƒdƒ\}}|rJ|d7}t|ƒdkrZd}t |||¡}t||t|ƒ||d�} |j   |  | j ||¡df¡| S)zY Helper function to implement map, starmap and their async counterparts. Ú__len__Nérr©r®) r¥r=rÚdivmodr‘r_rrºÚ MapResultrer;r³r¸) rrNrªZmapperr«r­r®Zextrar¼rPrrrr¨Ôs,  ÿþüÿzPool._map_asynccCs"t||d�| ¡s| ¡q dS)N)Útimeout)r Úemptyr<)r‰Úchange_notifierrÇrrrÚ_wait_for_updatesñs zPool._wait_for_updatesc Cspt ¡}|jtks |rX|jtkrX| ||||||| | | | ¡ | |¡| •}| ||¡q| d¡t   d¡dS)Nzworker handler exiting) ruÚcurrent_threadr`r r r¢r—rÊr;rrB)r’ÚcacheÚ taskqueuer[rZr…r›rFrGrHrIr†rJr‰rÉÚthreadZcurrent_sentinelsrrrrv÷sþ zPool._handle_workersc Cspt ¡}t|jdƒD]ê\}}d}zÎ|D]Š}|jtkrBt d¡qâz ||ƒWq&tk r®} zB|dd…\} } z||   | d| f¡Wnt k rœYnXW5d} ~ XYq&Xq&|rÜt d¡|rÌ|dnd} || dƒW¢qW¢ �q W5d}}} Xqt d¡z6t d¡|  d¡t d ¡|D]} |dƒ�q.Wn t k �r`t d ¡YnXt d ¡dS) Nz'task handler found thread._state != RUNéFzdoing set_length()rr°ztask handler got sentinelz/task handler sending sentinel to result handlerz(task handler sending sentinel to workersz/task handler got OSError when sending sentinelsztask handler exiting) rurËÚiterr<r`r rrBrCÚ_setÚKeyErrorr;rA) rÍr;rGr›rÌrÎZtaskseqZ set_lengthrKrLrQÚidxrˆrrrr} sB         zPool._handle_tasksc CsÈt ¡}z |ƒ}Wn$ttfk r6t d¡YdSX|jtkr`|jtksTt dƒ‚t d¡q¶|dkrtt d¡q¶|\}}}z||  ||¡Wnt k r¦YnXd}}}q|�rR|jtk�rRz |ƒ}Wn$ttfk röt d¡YdSX|dk�rt d¡q¶|\}}}z||  ||¡Wnt k �rBYnXd}}}q¶t |dƒ�r°t d¡z,t dƒD]}|j ¡�sˆ�q’|ƒ�qrWnttfk �r®YnXt d t|ƒ|j¡dS) Nz.result handler got EOFError/OSError -- exitingzThread not in TERMINATEz,result handler found thread._state=TERMINATEzresult handler got sentinelz&result handler ignoring extra sentinelr?z"ensuring that outqueue is not fullé z7result handler exiting: len(cache)=%s, thread._state=%s)rurËrAr@rrBr`r r r9rÑrÒr=ršr?Úpollr‘)rGr<rÌrÎrKrLrMÚobjrrrr€:s^               ÿzPool._handle_resultsccs0t|ƒ}tt ||¡ƒ}|s dS||fVqdSr)rÐÚtuplerÚislice)rNÚitÚsizer²rrrrºvs zPool._get_taskscCs tdƒ‚dS)Nz:pool objects cannot be passed between processes or pickled)ÚNotImplementedErrorrrrrr+sÿzPool.__reduce__cCs2t d¡|jtkr.t|_t|j_|j d¡dS)Nz closing pool)rrBr`r r rzrfr;rrrrr>„s   z Pool.closecCst d¡t|_| ¡dS)Nzterminating pool)rrBr r`r„rrrrrs‹s zPool.terminatecCsjt d¡|jtkrtdƒ‚n|jttfkr4tdƒ‚|j ¡|j  ¡|j  ¡|j D] }| ¡qXdS)Nz joining poolzPool is still runningzIn unknown state) rrBr`r rmr r rzr(rr‚r_)rrˆrrrr(�s       z Pool.joincCs@t d¡|j ¡| ¡r<|j ¡r<|j ¡t  d¡qdS)Nz7removing tasks from inqueue until task handler finishedr) rrBZ_rlockÚacquireÚis_aliver?rÕr¤ÚtimeÚsleep)rFÚ task_handlerrÚrrrÚ_help_stuff_finishœs    zPool._help_stuff_finishc CsXt d¡t|_| d¡t|_t d¡| ||t|ƒ¡| ¡sXt| ƒdkrXtdƒ‚t|_| d¡| d¡t d¡t   ¡|k r�|  ¡|rÈt |ddƒrÈt d¡|D]} | j dkr°|  ¡q°t d¡t   ¡|k ræ|  ¡t d ¡t   ¡|k �r|  ¡|�rTt |ddƒ�rTt d ¡|D](} |  ¡�r*t d | j¡|   ¡�q*dS) Nzfinalizing poolz&helping task handler/workers to finishrz.Cannot have cache with result_hander not alivezjoining worker handlerrszterminating workerszjoining task handlerzjoining result handlerzjoining pool workersr˜)rrBr r`r;rár‘rÝr9rurËr(r=rrrsÚpid) r’rÍrFrGr›rÉZworker_handlerràZresult_handlerrÌrˆrrrrƒ¥sB   ÿ            zPool._terminate_poolcCs | ¡|Sr)r¥rrrrÚ __enter__ÛszPool.__enter__cCs | ¡dSr)rs)rÚexc_typeZexc_valZexc_tbrrrÚ__exit__ßsz Pool.__exit__)NNrNN)N)N)NNN)r)r)NNN)NNN)N)-r r!r"r4ryÚ staticmethodrZrÚwarningsÚwarnr r�r3rtr—rœrqr�r¢rbr¥r§rrr¯r³r½r¿r¦rÁr¨rÊÚ classmethodrvr}r€rºr+r>rsr(rárƒrãrårrrrr­sx ÿ P       ÿ   ÿ ÿ ÿ    - ;    5c@s@eZdZdd„Zdd„Zdd„Zddd „Zdd d „Zd d „ZdS)rÀcCs>||_t ¡|_ttƒ|_|j|_||_||_ ||j|j<dSr) r_ruZEventÚ_eventÚnextÚ job_counterr¸rgÚ _callbackÚ_error_callback)rr›r­r®rrrrès  zApplyResult.__init__cCs |j ¡Sr)rêZis_setrrrrÚreadyñszApplyResult.readycCs| ¡std |¡ƒ‚|jS)Nz{0!r} not ready)rïrmr:Ú_successrrrrÚ successfulôszApplyResult.successfulNcCs|j |¡dSr)rêr ©rrÇrrrr ùszApplyResult.waitcCs,| |¡| ¡st‚|jr"|jS|j‚dSr)r rïrrðÚ_valueròrrrr<üs  zApplyResult.getcCsZ|\|_|_|jr$|jr$| |j¡|jr<|js<| |j¡|j ¡|j|j=d|_dSr) rðrórírîrêÚsetrgr¸r_©rrMrÖrrrrÑs       zApplyResult._set)N)N) r r!r"rrïrñr r<rÑrrrrrÀæs    rÀc@seZdZdd„Zdd„ZdS)rÆcCshtj||||d�d|_dg||_||_|dkrNd|_|j ¡|j|j =n||t ||ƒ|_dS)NrÄTr) rÀrrðróÚ _chunksizeÚ _number_leftrêrôrgr¸Úbool)rr›r«Úlengthr­r®rrrrs ÿ   zMapResult.__init__cCsÆ|jd8_|\}}|rv|jrv||j||j|d|j…<|jdkrÂ|jrZ| |j¡|j|j=|j ¡d|_ nL|sŒ|jrŒd|_||_|jdkrÂ|j r¨|  |j¡|j|j=|j ¡d|_ dS)NrrF) r÷rðrórörírgr¸rêrôr_rî)rrMZsuccess_resultÚsuccessrPrrrrÑ$s&          zMapResult._setN)r r!r"rrÑrrrrrÆs rÆc@s:eZdZdd„Zdd„Zd dd„ZeZdd „Zd d „ZdS) r·cCsT||_t t ¡¡|_ttƒ|_|j|_t   ¡|_ d|_ d|_ i|_||j|j<dS)Nr)r_ruZ ConditionZLockÚ_condrërìr¸rgÚ collectionsÚdequeÚ_itemsÚ_indexÚ_lengthÚ _unsorted)rr›rrrrBs  zIMapIterator.__init__cCs|SrrrrrrÚ__iter__MszIMapIterator.__iter__Nc Cs´|j��z|j ¡}Wnztk r�|j|jkr>d|_td‚|j |¡z|j ¡}Wn2tk rŠ|j|jkr€d|_td‚t d‚YnXYnXW5QRX|\}}|r¬|S|‚dSr) rûrþÚpopleftÚ IndexErrorrÿrr_Ú StopIterationr r)rrÇrXrúr/rrrrëPs&   zIMapIterator.nextc Cs¢|j�’|j|krn|j |¡|jd7_|j|jkrb|j |j¡}|j |¡|jd7_q,|j ¡n ||j|<|j|jkr”|j|j =d|_ W5QRXdS©Nr) rûrÿrþr rÚpopÚnotifyrrgr¸r_rõrrrrÑhs        zIMapIterator._setc CsB|j�2||_|j|jkr4|j ¡|j|j=d|_W5QRXdSr)rûrrÿrrgr¸r_)rrùrrrr¹ys    zIMapIterator._set_length)N) r r!r"rrrëÚ__next__rÑr¹rrrrr·@s   r·c@seZdZdd„ZdS)r¾c CsV|j�F|j |¡|jd7_|j ¡|j|jkrH|j|j=d|_W5QRXdSr) rûrþr rÿrrrgr¸r_rõrrrrчs    zIMapUnorderedIterator._setN)r r!r"rÑrrrrr¾…sr¾c@sVeZdZdZedd„ƒZddd„Zdd „Zd d „Zed d „ƒZ edd„ƒZ dd„Z dS)rFcOsddlm}|||ŽS)NrrY)ZdummyrZ)r[rrOrZrrrrZ—s zThreadPool.ProcessNrcCst ||||¡dSr)rr)rr…rHrIrrrrœszThreadPool.__init__cCs,t ¡|_t ¡|_|jj|_|jj|_dSr)rcrdrwrxr;r~r<r�rrrrrbŸs   zThreadPool._setup_queuescCs |jjgSr)rfr?rrrrrt¥szThreadPool._get_sentinelscCsgSrrr–rrrr—¨sz ThreadPool._get_worker_sentinelscCsFz|jdd�qWntjk r(YnXt|ƒD]}| d¡q2dS)NF)Úblock)r<rcrršr;)rFràrÚrMrrrrá¬s  zThreadPool._help_stuff_finishcCst |¡dSr)rÞrß)rr‰rÉrÇrrrrÊ·szThreadPool._wait_for_updates)NNr) r r!r"ryrærZrrbrtr—rárÊrrrrr”s    )NrNF))Ú__all__rürrkrcrurÞr%rçrr$rrrZ connectionr r r r r ÚcountrìrrrCrr#r*r-rSrDÚdictrTÚobjectrrÀZ AsyncResultrÆr·r¾rrrrrÚ sN    ÿ -=)+E