Viewing File: /usr/lib/python2.7/site-packages/concurrent/futures/thread.pyo

ó
iÝðXc@sídZddlZddlmZddlZddlZddlZddlZyddl	m
Z
Wnek
r‚d„Z
nXdZej
ƒZead„Zejeƒdefd	„ƒYZd
„Zdejfd„ƒYZdS(
sImplements ThreadPoolExecutor.iÿÿÿÿN(t_base(t	cpu_countcCsdS(N(tNone(((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyRss"Brian Quinlan (brian@sweetapp.com)cCsstatrttjƒƒnd}x!|D]\}}|jdƒq+Wx$|D]\}}|jtj	ƒqOWdS(N((
tTruet	_shutdownt_threads_queuestlisttitemstputRtjointsystmaxint(Rtttq((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyt_python_exit'st	_WorkItemcBseZd„Zd„ZRS(cCs(||_||_||_||_dS(N(tfuturetfntargstkwargs(tselfRRRR((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyt__init__3s			cCsv|jjƒsdSy|j|j|jŽ}Wn0tjƒd\}}|jj||ƒnX|jj|ƒdS(Ni(	Rtset_running_or_notify_cancelRRRR
texc_infotset_exception_infot
set_result(Rtresulttettb((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pytrun9s(t__name__t
__module__RR(((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyR2s	cCsžyzxstrx|jdtƒ}|dk	r=|jƒ~qn|ƒ}tsa|dksa|jrr|jdƒdS~qWWntjjddtƒnXdS(NtblocksException in workerR(	RtgetRRRRRtLOGGERtcritical(texecutor_referencet
work_queuet	work_itemtexecutor((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyt_workerEs	
	
tThreadPoolExecutorcBsVeZdd„Zd„Zejjje_d„Ze	d„Z
ejj
je
_RS(cCs}|dkr"tƒpdd}n|dkr=tdƒ‚n||_tjƒ|_tƒ|_t	|_
tjƒ|_
dS(sºInitializes a new ThreadPoolExecutor instance.

        Args:
            max_workers: The maximum number of threads that can be used to
                execute the given calls.
        iiis"max_workers must be greater than 0N(RRt
ValueErrort_max_workerstqueuetQueuet_work_queuetsett_threadstFalseRt	threadingtLockt_shutdown_lock(Rtmax_workers((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyR]s		c	Osk|j\|jr"tdƒ‚ntjƒ}t||||ƒ}|jj|ƒ|jƒ|SWdQXdS(Ns*cannot schedule new futures after shutdown(	R4RtRuntimeErrorRtFutureRR.Rt_adjust_thread_count(RRRRtftw((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pytsubmitqs
	
cCs‹|jd„}t|jƒ|jkr‡tjdtdtj||ƒ|jfƒ}t	|_
|jƒ|jj|ƒ|jt
|<ndS(NcSs|jdƒdS(N(RR(t_R
((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyt
weakref_cbsttargetR(R.tlenR0R+R2tThreadR(tweakreftrefRtdaemontstarttaddR(RR=R((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyR8~s	
cCsZ|jt|_|jjdƒWdQX|rVx$|jD]}|jtj	ƒq9WndS(N(
R4RRR.RRR0R	R
R(RtwaitR((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pytshutdownŽs
	N(RRRRR;RtExecutort__doc__R8RRG(((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyR)\s		(RItatexittconcurrent.futuresRR-R,R2RAR
tmultiprocessingRtImportErrort
__author__tWeakKeyDictionaryRR1RRtregistertobjectRR(RHR)(((s=/usr/lib/python2.7/site-packages/concurrent/futures/thread.pyt<module>s$

		
	
Back to Directory File Manager