File "pool.cpython-34.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python34/lib64/python3.4/multiprocessing/__pycache__/pool.cpython-34.pyc
File size: 22.61 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit


e fa@sddgZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddlm
Z
mZdZdZ
dZejZdd	Zd
dZGdd
d
eZGdddZddZGdddeZdfddddZGdddeZGdddeZeZGdddeZGdddeZGdddeZGd ddeZ dS)!Pool
ThreadPoolN)util)get_contextTimeoutErrorcCstt|S)N)listmap)argsr9/opt/alt/python34/lib64/python3.4/multiprocessing/pool.pymapstar+srcCsttj|d|dS)Nrr)r		itertoolsstarmap)rrrr
starmapstar.src@s(eZdZddZddZdS)RemoteTracebackcCs
||_dS)N)tb)selfrrrr
__init__6szRemoteTraceback.__init__cCs|jS)N)r)rrrr
__str__8szRemoteTraceback.__str__N)__name__
__module____qualname__rrrrrr
r5src@s(eZdZddZddZdS)ExceptionWithTracebackcCsDtjt|||}dj|}||_d||_dS)Nz

"""
%s""")	tracebackformat_exceptiontypejoinexcr)rr rrrr
r<s	zExceptionWithTraceback.__init__cCst|j|jffS)N)rebuild_excr r)rrrr

__reduce__Asz!ExceptionWithTraceback.__reduce__N)rrrrr"rrrr
r;srcCst||_|S)N)r	__cause__)r rrrr
r!Dsr!cs@eZdZdZfddZddZddZS)MaybeEncodingErrorzVWraps possible unpickleable errors, so they can be
    safely sent through the socket.csAt||_t||_tt|j|j|jdS)N)reprr valuesuperr$r)rr r&)	__class__rr
rPszMaybeEncodingError.__init__cCsd|j|jfS)Nz(Error sending result: '%s'. Reason: '%s')r&r )rrrr
rUs	zMaybeEncodingError.__str__cCsdt|S)Nz<MaybeEncodingError: %s>)str)rrrr
__repr__YszMaybeEncodingError.__repr__)rrr__doc__rrr*rr)r(r
r$Lsr$Fc'Cs|dks0t|tkr*|dks0t|j}|j}t|drn|jj|jjn|dk	r||nd}xx|dks|r||kry
|}	Wn&t	t
fk
rtjdPYnX|	dkrtjdPn|	\}
}}}
}yd||
|f}WnLt
k
r}}z,|r_t||j}nd|f}WYdd}~XnXy||
||fWnbt
k
r}zBt||d}tjd|||
|d|ffWYdd}~XnX|d7}qWtjd	|dS)
Nr_writerz)worker got EOFError or OSError -- exitingzworker got sentinel -- exitingTFrz0Possible encoding error while sending result: %szworker exiting after %d tasks)rintAssertionErrorputgethasattrr,close_readerEOFErrorOSErrorrdebug	Exceptionr
__traceback__r$)inqueueoutqueueinitializerinitargsZmaxtasksZwrap_exceptionr/r0Z	completedtaskjobifuncrkwdsresultewrappedrrr
worker]sD0		

!


	,rEc@seZdZdZdZddZddfddddZdd	Zd
dZdd
Z	ddZ
fiddZdddZdddZ
dddddZdddZdddZfiddddZddddd Zdddd!d"Zed#d$Zed%d&Zed'd(Zed)d*Zd+d,Zd-d.Zd/d0Zd1d2Zed3d4Zed5d6Zd7d8Z d9d:Z!dS);rzS
    Class which supports an async version of applying functions to arguments.
    TcOs|jj||S)N)_ctxProcess)rrrArrr
rGszPool.ProcessNcCs,|pt|_|jtj|_i|_t|_||_	||_
||_|dkrytj
psd}n|dkrtdn|dk	rt|rtdn||_g|_|jtjdtjd|f|_d|j_t|j_|jjtjdtjd|j|j|j|j|jf|_d|j_t|j_|jjtjdtjd|j|j |jf|_!d|j!_t|j!_|j!jt"j#||j$d|j|j%|j|j|j|j|j!|jfdd|_&dS)	Nrz&Number of processes must be at least 1zinitializer must be a callabletargetrTZexitpriority)'rrF
_setup_queuesqueueQueue
_taskqueue_cacheRUN_state_maxtasksperchild_initializer	_initargsos	cpu_count
ValueErrorcallable	TypeError
_processes_pool_repopulate_pool	threadingZThreadr_handle_workers_worker_handlerdaemonstart
_handle_tasks
_quick_put	_outqueue
_task_handler_handle_results
_quick_get_result_handlerrZFinalize_terminate_pool_inqueue
_terminate)r	processesr;r<Zmaxtasksperchildcontextrrr
rsT
							
		
		
		
z
Pool.__init__cCszd}xmttt|jD]P}|j|}|jdk	r"tjd||jd}|j|=q"q"W|S)zCleanup after any worker processes which have exited due to reaching
        their specified lifetime.  Returns True if any workers were cleaned up.
        FNzcleaning up worker %dT)reversedrangelenrZexitcoderr6r)rZcleanedr?rErrr
_join_exited_workerss"

zPool._join_exited_workerscCsxt|jt|jD]}|jdtd|j|j|j|j	|j
|jf}|jj||j
jdd|_
d|_|jtjdqWdS)zBring the number of pool processes up to the specified number,
        for use after reaping workers which have exited.
        rHrrGZ
PoolWorkerTzadded workerN)rnrYrorZrGrErircrRrSrQ_wrap_exceptionappendnamereplacer_r`rr6)rr?wrrr
r[s#	
zPool._repopulate_poolcCs|jr|jndS)zEClean up any exited workers and start replacements for them.
        N)rqr[)rrrr
_maintain_poolszPool._maintain_poolcCsL|jj|_|jj|_|jjj|_|jjj|_	dS)N)
rFZSimpleQueuerircr,sendrbr3recvrf)rrrr
rJszPool._setup_queuescCs.|jtkst|j|||jS)z6
        Equivalent of `func(*args, **kwds)`.
        )rPrOr.apply_asyncr0)rr@rrArrr
applysz
Pool.applycCs|j||t|jS)zx
        Apply `func` to each element in `iterable`, collecting the results
        in a list that is returned.
        )
_map_asyncrr0)rr@iterable	chunksizerrr
r
szPool.mapcCs|j||t|jS)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|rr0)rr@r}r~rrr
rszPool.starmapcCs|j||t|||S)z=
        Asynchronous version of `starmap()` method.
        )r|r)rr@r}r~callbackerror_callbackrrr

starmap_asyncszPool.starmap_asyncrcs|jtkrtdn|dkrrt|j|jjfddt|DjfS|dkst	t
j||}t|j|jjfddt|DjfddDSdS)zP
        Equivalent of `map()` -- can be MUCH slower than `Pool.map()`.
        zPool not runningrc3s0|]&\}}j||fifVqdS)N)_job).0r?x)r@rBrr
	<genexpr>szPool.imap.<locals>.<genexpr>c3s0|]&\}}j|t|fifVqdS)N)rr)rr?r)rBrr
r%scss"|]}|D]}|Vq
qdS)Nr)rchunkitemrrr
r'sN)rPrOrVIMapIteratorrNrMr/	enumerate_set_lengthr.r
_get_tasks)rr@r}r~task_batchesr)r@rBr
imapsz	Pool.imapcs|jtkrtdn|dkrrt|j|jjfddt|DjfS|dkst	t
j||}t|j|jjfddt|DjfddDSdS)zL
        Like `imap()` method but ordering of results is arbitrary.
        zPool not runningrc3s0|]&\}}j||fifVqdS)N)r)rr?r)r@rBrr
r1sz&Pool.imap_unordered.<locals>.<genexpr>c3s0|]&\}}j|t|fifVqdS)N)rr)rr?r)rBrr
r8scss"|]}|D]}|Vq
qdS)Nr)rrrrrr
r:sN)rPrOrVIMapUnorderedIteratorrNrMr/rrr.rr)rr@r}r~rr)r@rBr
imap_unordered)szPool.imap_unorderedcCsb|jtkrtdnt|j||}|jj|jd|||fgdf|S)z;
        Asynchronous version of `apply()` method.
        zPool not runningN)rPrOrVApplyResultrNrMr/r)rr@rrArrrBrrr
rz<s
+zPool.apply_asynccCs|j||t|||S)z9
        Asynchronous version of `map()` method.
        )r|r)rr@r}r~rrrrr
	map_asyncGszPool.map_asyncc	s|jtkrtdnt|ds<t|}n|dkrtt|t|jd\}}|r|d7}qnt|dkrd}ntj	|||}t
|j|t||d||jj
fdd	t|DdfS)
zY
        Helper function to implement map, starmap and their async counterparts.
        zPool not running__len__Nrrrc3s0|]&\}}j||fifVqdS)N)r)rr?r)mapperrBrr
rcsz"Pool._map_async.<locals>.<genexpr>)rPrOrVr1r	divmodrorZrr	MapResultrNrMr/r)	rr@r}rr~rrZextrarr)rrBr
r|Os (		zPool._map_asynccCsrtj}xB|jtks6|jrP|jtkrP|jtjdqW|j	j
dtjddS)Ng?zworker handler exiting)
r\current_threadrPrOrN	TERMINATErwtimesleeprMr/rr6)poolthreadrrr
r]gs*
zPool._handle_workerscCs>tj}xt|jdD]\}}d}d}	yxt|D]\}	}|jrmtjdPny||WqGtk
r}
zN|dd\}}y||j	|d|
fWnt
k
rYnXWYdd}
~
XqGXqGW|rtjd||	dnwPWqtk
r}
zx|rD|ddnd
\}}||kr}||j	|dd|
fn|rtjd||	dnWYdd}
~
XqXqWtjdyFtjd|jdtjd	x|D]}|dqWWntk
r,tjd
YnXtjddS)Nrz'task handler found thread._state != RUNrFzdoing set_length()rztask 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)rr)
r\riterr0rrPrr6r7_setKeyErrorr/r5)	taskqueuer/r:rcacherZtaskseqZ
set_lengthr=r?rCr>ZindZexprrr
ratsN	


"!
(





zPool._handle_taskscCstj}xy
|}Wn)ttfk
rGtjddSYnX|jrw|jtksfttjdPn|dkrtjdPn|\}}}y||j	||Wqt
k
rYqXqWx|r|jtkry
|}Wn)ttfk
r$tjddSYnX|dkrDtjdqn|\}}}y||j	||Wqt
k
rYqXqWt|drtjdy5x.tdD] }|j
jsPn|qWWqttfk
rYqXntjdt||jdS)	Nz.result handler got EOFError/OSError -- exitingz,result handler found thread._state=TERMINATEzresult handler got sentinelz&result handler ignoring extra sentinelr3z"ensuring that outqueue is not full
z7result handler exiting: len(cache)=%s, thread._state=%s)r\rr5r4rr6rPrr.rrr1rnr3pollro)r:r0rrr=r>r?objrrr
resX

		


	

	

	
	zPool._handle_resultsccsDt|}x1ttj||}|s1dS||fVqWdS)N)rtuplerislice)r@itsizerrrr
rszPool._get_taskscCstddS)Nz:pool objects cannot be passed between processes or pickled)NotImplementedError)rrrr
r"szPool.__reduce__cCs8tjd|jtkr4t|_t|j_ndS)Nzclosing pool)rr6rPrOCLOSEr^)rrrr
r2s
	z
Pool.closecCs0tjdt|_t|j_|jdS)Nzterminating pool)rr6rrPr^rj)rrrr
	terminates
	zPool.terminatecCsqtjd|jttfks(t|jj|jj|j	jx|j
D]}|jqYWdS)Nzjoining pool)rr6rPrrr.r^rrdrgrZ)rrrrr
rs



z	Pool.joincCsZtjd|jjx9|jrU|jjrU|jjtj	dqWdS)Nz7removing tasks from inqueue until task handler finishedr)
rr6Z_rlockacquireis_aliver3rryrr)r9task_handlerrrrr
_help_stuff_finishs



zPool._help_stuff_finishc	
Cstjdt|_t|_tjd|j||t||jsit|dksitt|_|jdtjdt	j
|k	r|jn|rt|ddrtjdx-|D]"}	|	j
dkr|	jqqWntjdt	j
|k	r-|jntjdt	j
|k	rY|jn|rt|ddrtjd	x>|D]3}	|	jrtjd
|	j|	jqqWndS)Nzfinalizing poolz&helping task handler/workers to finishrzjoining worker handlerrzterminating workerszjoining task handlerzjoining result handlerzjoining pool workerszcleaning up worker %d)rr6rrPrrorr.r/r\rrr1rprpid)
clsrr9r:rZworker_handlerrZresult_handlerrrrrr
rh
s8
		
$	










zPool._terminate_poolcCs|S)Nr)rrrr
	__enter__;szPool.__enter__cCs|jdS)N)r)rexc_typeZexc_valZexc_tbrrr
__exit__>sz
Pool.__exit__)"rrrr+rrrGrrqr[rwrJr{r
rrrrrzrr|staticmethodr]rarerr"r2rrrclassmethodrhrrrrrr
rsD	8	

3:			.c@s^eZdZddZddZddZddd	Zdd
dZdd
ZdS)rcCsJtj|_tt|_||_||_||_|||j<dS)N)	r\ZEvent_eventnextjob_counterrrN	_callback_error_callback)rrrrrrr
rGs			zApplyResult.__init__cCs
|jjS)N)rZis_set)rrrr
readyOszApplyResult.readycCs|jst|jS)N)rr._success)rrrr

successfulRszApplyResult.successfulNcCs|jj|dS)N)rwait)rtimeoutrrr
rVszApplyResult.waitcCs?|j||js"tn|jr2|jS|jdS)N)rrrr_value)rrrrr
r0Ys
		zApplyResult.getcCs{|\|_|_|jr7|jr7|j|jn|jr]|jr]|j|jn|jj|j|j=dS)N)rrrrrsetrNr)rr?rrrr
rbs
zApplyResult._set)	rrrrrrrr0rrrrr
rEs	rc@s(eZdZddZddZdS)rcCstj|||d|d|_dg||_||_|dkrjd|_|jj||j=n||t	|||_dS)NrTr)
rrrr
_chunksize_number_leftrrrbool)rrr~lengthrrrrr
rss			

zMapResult.__init__cCs|\}}|r||j||j|d|j<|jd8_|jdkr|jrq|j|jn|j|j=|jjqnHd|_||_|j	r|j	|jn|j|j=|jjdS)NrrF)
rrrrrNrrrrr)rr?Zsuccess_resultsuccessrBrrr
rs%	
			
zMapResult._setN)rrrrrrrrr
rqs
rc@sUeZdZddZddZdddZeZdd	Zd
dZdS)rcCsktjtj|_tt|_||_tj	|_
d|_d|_i|_
|||j<dS)Nr)r\Z	ConditionZLock_condrrrrNcollectionsdeque_items_index_length	_unsorted)rrrrr
rs				zIMapIterator.__init__cCs|S)Nr)rrrr
__iter__szIMapIterator.__iter__NcCs|jjzy|jj}Wntk
r|j|jkrNtn|jj|y|jj}Wn3tk
r|j|jkrtnt	YnXYnXWd|jj
X|\}}|r|S|dS)N)rrrpopleft
IndexErrorrr
StopIterationrrrelease)rrrrr&rrr
rs&

	
	zIMapIterator.nextc
Cs|jjz|j|kr|jj||jd7_xJ|j|jkr|jj|j}|jj||jd7_qAW|jjn
||j|<|j|jkr|j	|j
=nWd|jjXdS)Nr)rrrrrsrpopnotifyrrNrr)rr?rrrr
rs

zIMapIterator._setc
Cs^|jjz<||_|j|jkrH|jj|j|j=nWd|jjXdS)N)rrrrrrNrr)rrrrr
rs
	
zIMapIterator._set_length)	rrrrrr__next__rrrrrr
rs
rc@seZdZddZdS)rc
Cst|jjzR|jj||jd7_|jj|j|jkr^|j|j=nWd|jj	XdS)Nr)
rrrrsrrrrNrr)rr?rrrr
rs

zIMapUnorderedIterator._setN)rrrrrrrr
rsrc@s[eZdZdZeddZddfddZddZed	d
ZdS)rFcOsddlm}|||S)Nr)rG)ZdummyrG)rrArGrrr
rGszThreadPool.ProcessNcCstj||||dS)N)rr)rrkr;r<rrr
rszThreadPool.__init__cCs@tj|_tj|_|jj|_|jj|_dS)N)rKrLrircr/rbr0rf)rrrr
rJszThreadPool._setup_queuesc
CsW|jjz5|jj|jjdg||jjWd|jjXdS)N)Z	not_emptyrrKclearextendZ
notify_allr)r9rrrrr
rs

zThreadPool._help_stuff_finish)	rrrrrrrGrrJrrrrr
rs
)!__all__r\rKrrrTrrrrrrrOrrcountrrrr7rrr!r$rEobjectrrZAsyncResultrrrrrrrr
<module>
s:		,&%I