File "windows_events.cpython-34.pyc"

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


j f9l@sdZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZddlmZdd	lm
Z
dd
lmZddlmZddlmZdd
lmZddddgZdZdZdZdZdZdZGddde
jZGddde
jZGdddeZGdddeZGdd d e Z!Gd!d"d"ej"Z#Gd#ddej$Z%Gd$ddZ&Gd%d&d&e	j'Z(e#Z)Gd'd(d(ej*Z+e+Z,dS))z.Selector and proactor event loops for Windows.N)events)base_subprocess)futures)proactor_events)selector_events)tasks)
windows_utils)_overlapped)	coroutine)loggerSelectorEventLoopProactorEventLoopIocpProactorDefaultEventLoopPolicyliigMbP?g?cseZdZdZddfddZfddZdd	Zfd
dZfdd
ZfddZ	S)_OverlappedFuturezSubclass of Future which represents an overlapped operation.

    Cancelling it will immediately cancel the overlapped operation.
    loopNcs6tjd||jr)|jd=n||_dS)Nrr)super__init___source_traceback_ov)selfovr)	__class__;/opt/alt/python34/lib64/python3.4/asyncio/windows_events.pyr-s	
z_OverlappedFuture.__init__cs]tj}|jdk	rY|jjr0dnd}|jdd||jjfn|S)NpendingZ	completedrzoverlapped=<%s, %#x>)r
_repr_inforrinsertaddress)rinfostate)rrrr3s
#z_OverlappedFuture._repr_infocCs|jdkrdSy|jjWnitk
r}zIidd6|d6|d6}|jrm|j|d<n|jj|WYdd}~XnXd|_dS)Nz&Cancelling an overlapped future failedmessage	exceptionfuturesource_traceback)rcancelOSErrorr_loopcall_exception_handler)rexccontextrrr_cancel_overlapped:s
	#z$_OverlappedFuture._cancel_overlappedcs|jtjS)N)r-rr')r)rrrr'Js
z_OverlappedFuture.cancelcstj||jdS)N)r
set_exceptionr-)rr$)rrrr.Nsz_OverlappedFuture.set_exceptioncstj|d|_dS)N)r
set_resultr)rresult)rrrr/Rsz_OverlappedFuture.set_result)
__name__
__module____qualname____doc__rrr-r'r.r/rr)rrr'srcseZdZdZddfddZddZfdd	Zd
dZdd
ZfddZ	fddZ
fddZS)_BaseWaitHandleFuturez2Subclass of Future which represents a wait handle.rNcsQtjd||jr)|jd=n||_||_||_d|_dS)NrrTr)rrrr_handle_wait_handle_registered)rrhandlewait_handler)rrrrZs	
			z_BaseWaitHandleFuture.__init__cCstj|jdtjkS)Nr)_winapiZWaitForSingleObjectr6Z
WAIT_OBJECT_0)rrrr_pollhsz_BaseWaitHandleFuture._pollcstj}|jd|j|jdk	rZ|jrDdnd}|j|n|jdk	r|jd|jn|S)Nz
handle=%#xZsignaledZwaitingzwait_handle=%#x)rrappendr6r<r7)rr!r")rrrrmsz _BaseWaitHandleFuture._repr_infocCs
d|_dS)N)r)rfutrrr_unregister_wait_cbwsz)_BaseWaitHandleFuture._unregister_wait_cbcCs|js
dSd|_|j}d|_ytj|Wntk
r}z_|jtjkridd6|d6|d6}|jr|j|d<n|jj	|dSWYdd}~XnX|j
ddS)NFz$Failed to unregister the wait handler#r$r%r&)r8r7r
ZUnregisterWaitr(winerrorERROR_IO_PENDINGrr)r*r?)rr:r+r,rrr_unregister_wait|s$				
	z&_BaseWaitHandleFuture._unregister_waitcs|jtjS)N)rBrr')r)rrrr's
z_BaseWaitHandleFuture.cancelcs|jtj|dS)N)rBrr.)rr$)rrrr.s
z#_BaseWaitHandleFuture.set_exceptioncs|jtj|dS)N)rBrr/)rr0)rrrr/s
z _BaseWaitHandleFuture.set_result)r1r2r3r4rr<rr?rBr'r.r/rr)rrr5Ws
r5csLeZdZdZddfddZddZfdd	ZS)
_WaitCancelFuturezoSubclass of Future which represents a wait for the cancellation of a
    _WaitHandleFuture using an event.
    rNcs)tj|||d|d|_dS)Nr)rr_done_callback)rreventr:r)rrrrsz_WaitCancelFuture.__init__cCstddS)Nz'_WaitCancelFuture must not be cancelled)RuntimeError)rrrrr'sz_WaitCancelFuture.cancelcs6tt|j|jdk	r2|j|ndS)N)rrC_schedule_callbacksrD)r)rrrrGsz%_WaitCancelFuture._schedule_callbacks)r1r2r3r4rr'rGrr)rrrCsrCcsFeZdZddfddZfddZddZS)	_WaitHandleFuturerNcsVtj|||d|||_d|_tjdddd|_d|_dS)NrTF)rr	_proactorZ_unregister_proactorr
ZCreateEvent_event
_event_fut)rrr9r:proactorr)rrrrs
		z_WaitHandleFuture.__init__csd|jdk	r4tj|jd|_d|_n|jj|jd|_tj|dS)N)	rJr;CloseHandlerKrI_unregisterrrr?)rr>)rrrr?s			z%_WaitHandleFuture._unregister_wait_cbcCs|js
dSd|_|j}d|_ytj||jWntk
r}z_|jtjkridd6|d6|d6}|jr|j|d<n|j	j
|dSWYdd}~XnX|jj|j|j
|_dS)NFz$Failed to unregister the wait handler#r$r%r&)r8r7r
ZUnregisterWaitExrJr(r@rArr)r*rI_wait_cancelr?rK)rr:r+r,rrrrBs&				
	z"_WaitHandleFuture._unregister_wait)r1r2r3rr?rBrr)rrrHsrHc@sXeZdZdZddZddZddZdd	Zd
dZeZ	dS)
PipeServerzXClass representing a pipe server.

    This is much like a bound, listening socket.
    cCs@||_tj|_d|_d|_|jd|_dS)NT)_addressweakrefWeakSet_free_instances_pipe_accept_pipe_future_server_pipe_handle)rr rrrrs
			zPipeServer.__init__cCs |j|jd}|_|S)NF)rUrW)rtmprrr_get_unconnected_pipesz PipeServer._get_unconnected_pipec	Cs|jrdStjtjB}|r6|tjO}ntj|j|tjtjBtj	Btj
tjtjtj
tj}tj|}|jj||S)N)closedr;ZPIPE_ACCESS_DUPLEXZFILE_FLAG_OVERLAPPEDZFILE_FLAG_FIRST_PIPE_INSTANCEZCreateNamedPiperQZPIPE_TYPE_MESSAGEZPIPE_READMODE_MESSAGEZ	PIPE_WAITZPIPE_UNLIMITED_INSTANCESr	ZBUFSIZEZNMPWAIT_WAIT_FOREVERNULL
PipeHandlerTadd)rfirstflagshpiperrrrWs	
zPipeServer._server_pipe_handlecCs
|jdkS)N)rQ)rrrrrZszPipeServer.closedcCs{|jdk	r(|jjd|_n|jdk	rwx|jD]}|jqAWd|_d|_|jjndS)N)rVr'rQrTcloserUclear)rrarrrrbs
		zPipeServer.closeN)
r1r2r3r4rrYrWrZrb__del__rrrrrPs
rPc@s"eZdZdZddZdS)_WindowsSelectorEventLoopz'Windows version of selector event loop.cCs
tjS)N)r	
socketpair)rrrr_socketpair&sz%_WindowsSelectorEventLoop._socketpairN)r1r2r3r4rgrrrrre#srecspeZdZdZdfddZddZeddZed	d
ZedddZ	S)
rz2Windows version of proactor event loop using IOCP.Ncs,|dkrt}ntj|dS)N)rrr)rrL)rrrr-szProactorEventLoop.__init__cCs
tjS)N)r	rf)rrrrrg2szProactorEventLoop._socketpairccsO|jj|}|DdH}|}|j||di|d6}||fS)Nextraaddr)rIconnect_pipe_make_duplex_pipe_transport)rprotocol_factoryr fraprotocoltransrrrcreate_pipe_connection5s	z(ProactorEventLoop.create_pipe_connectioncsAtdfddjgS)Ncsod}y|rn|j}jj|jrE|jdS}j||did6nj}|dkrdSjj|}Wnt	k
r-}zn|r|j
dkrjidd6|d6|d6|jn"jrt
jd|d	d
nWYdd}~Xn>tjk
rT|rP|jnYnX|_|jdS)NrhrirzPipe accept failedr#r$razAccept pipe failed on pipe %rexc_infoTr)r0rTdiscardrZrbrkrYrIaccept_piper(filenor*Z_debugrZwarningrCancelledErrorrVadd_done_callback)rmrarnr+)r loop_accept_piperlrserverrrrwBs<
		
		"	z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_pipe)rPZ	call_soon)rrlr r)r rwrlrrxrstart_serving_pipe>s!(
z$ProactorEventLoop.start_serving_pipec	kstjd|}
t||||||||d|
d||	}y
|
DdHWn+tk
r|}z|}
WYdd}~XnXd}
|
dk	r|j|jDdH|
n|S)Nrwaiterrh)rFuture_WindowsSubprocessTransport	ExceptionrbZ_wait)rrnargsshellstdinstdoutstderrbufsizerhkwargsrzZtranspr+errrrr_make_subprocess_transportms		

	z,ProactorEventLoop._make_subprocess_transport)
r1r2r3r4rrgrrpryrrr)rrr*s	/c@s6eZdZdZdddZddZddZd	d
dZdd
ZdddZ	dddZ
ddZddZddZ
eddZd	ddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd	d)d*Zd+d,Zd-d.Zd/d0Zd	S)1rz#Proactor implementation using IOCP.lcCsdd|_g|_tjtjtd||_i|_tj	|_
g|_tj	|_dS)Nr)
r)_resultsr
CreateIoCompletionPortINVALID_HANDLE_VALUEr[_iocp_cacherRrSr8
_unregistered_stopped_serving)rZconcurrencyrrrrs				zIocpProactor.__init__cCs)d|jjt|jt|jfS)Nz<%s overlapped#=%s result#=%s>)rr1lenrr)rrrr__repr__szIocpProactor.__repr__cCs
||_dS)N)r))rrrrrset_loopszIocpProactor.set_loopNcCs/|js|j|n|j}g|_|S)N)rr<)rtimeoutrXrrrselects
			zIocpProactor.selectcCs&tjd|j}|j||S)Nr)rr{r)r/)rvaluer>rrr_results
zIocpProactor._resultrcCs|j|tjt}yHt|tjrM|j|j||n|j|j|Wnt	k
r|j
dSYnXdd}|j|||S)NcSsay|jSWnLtk
r\}z,|jtjkrGt|jnWYdd}~XnXdS)N)	getresultr(r@r
ERROR_NETNAME_DELETEDConnectionResetErrorr~)rokeyrr+rrrfinish_recvsz&IocpProactor.recv.<locals>.finish_recv)_register_with_iocpr

Overlappedr[
isinstancesocketZWSARecvrtZReadFileBrokenPipeErrorr	_register)rconnnbytesr_rrrrrrecvs

	zIocpProactor.recvcCs|j|tjt}t|tjrJ|j|j||n|j|j|dd}|j	|||S)NcSsay|jSWnLtk
r\}z,|jtjkrGt|jnWYdd}~XnXdS)N)rr(r@r
rrr~)rorrr+rrrfinish_sendsz&IocpProactor.send.<locals>.finish_send)
rr
rr[rrZWSASendrtZ	WriteFiler)rrbufr_rrrrrsends
	zIocpProactor.sendcs|j|jjtjt}|jjjfdd}tdd}|j	||}||}t
j|d|j|S)Ncs^|jtjdj}jtjtj|j	j
jfS)Nz@P)rstructZpackrt
setsockoptr
SOL_SOCKETr
ZSO_UPDATE_ACCEPT_CONTEXT
settimeoutZ
gettimeoutZgetpeername)rorrr)rlistenerrr
finish_accepts

z*IocpProactor.accept.<locals>.finish_acceptcss6y
|DdHWn"tjk
r1|jYnXdS)N)rrurb)r%rrrraccept_coros


z(IocpProactor.accept.<locals>.accept_coror)
r_get_accept_socketfamilyr
rr[ZAcceptExrtrrrZ
ensure_futurer))rrrrrr%Zcoror)rrraccepts
		zIocpProactor.acceptcs|jytjjjWnYtk
r}z9|jtjkrWnj	ddkrsnWYdd}~XnXtj
t}|jj|fdd}|j
||S)Nrrcs'|jjtjtjdS)Nr)rrrrr
ZSO_UPDATE_CONNECT_CONTEXT)rorr)rrrfinish_connects

z,IocpProactor.connect.<locals>.finish_connect)rr
Z	BindLocalrtrr(r@errnoZ	WSAEINVALZgetsocknamerr[Z	ConnectExr)rrr errr)rrconnects
zIocpProactor.connectcsi|jtjt}|jj}|rD|jSfdd}|j||S)Ncs|jS)N)r)rorr)rarrfinish_accept_pipes
z4IocpProactor.accept_pipe.<locals>.finish_accept_pipe)rr
rr[ZConnectNamedPipertrr)rrarZ	connectedrr)rarrss

zIocpProactor.accept_pipeccst}xytj|}PWn=tk
r\}z|jtjkrJnWYdd}~XnXt|dt}tj	|d|j
DdHq	Wtj|S)Nr)
CONNECT_PIPE_INIT_DELAYr
ZConnectPiper(r@ZERROR_PIPE_BUSYminCONNECT_PIPE_MAX_DELAYrZsleepr)r	r\)rr Zdelayr9r+rrrrjszIocpProactor.connect_pipecCs|j||dS)zWait for a handle.

        Return a Future object. The result of the future is True if the wait
        completed, or False if the wait did not complete (on timeout).
        F)_wait_for_handle)rr9rrrrwait_for_handle*szIocpProactor.wait_for_handlecCs"|j|dd}||_|S)NT)rrD)rrEZ
done_callbackr>rrrrO2s	zIocpProactor._wait_cancelcs|dkrtj}ntj|d}tjt}tj||j|j	|}|r|t
|||d|jnt||||d|jj
rj
d=nfdd}|d|f|j|j	<S)Ng@@rrcs
jS)N)r<)rorr)rmrrfinish_wait_for_handleMsz=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handlerr)r;INFINITEmathceilr
rr[ZRegisterWaitWithQueuerr rCr)rHrr)rr9rZ
_is_cancelmsrr:rr)rmrr9s	
	zIocpProactor._wait_for_handlecCsE||jkrA|jj|tj|j|jddndS)Nr)r8r]r
rrtr)robjrrrrYsz IocpProactor._register_with_iocpcCst|d|j}|jr+|jd=n|jsy|dd|}Wn2tk
r~}z|j|WYdd}~XqX|j|n||||f|j|j<|S)Nrrr)	rr)rrr(r.r/rr )rrrcallbackrmrrrrrrcs	
	 
zIocpProactor._registercCs|jj|dS)a
Unregister an overlapped object.

        Call this method when its future has been cancelled. The event can
        already be signalled (pending in the proactor event queue). It is also
        safe if the event is never signalled (because it was cancelled).
        N)rr=)rrrrrrNszIocpProactor._unregistercCs tj|}|jd|S)Nr)rr)rrsrrrrs
zIocpProactor._get_accept_socketcCs|dkrt}nI|dkr0tdn.tj|d}|tkr^tdnxtj|j|}|dkrPnd}|\}}}}y"|jj|\}}	}
}Wnzt	k
r<|j
jr|j
jidd6d||||fd6n|dtj
fkr5tj|nwaYnX|
|jkrY|jqa|jsay||||	}WnBtk
r}
z"|j|
|jj|WYdd}
~
XqX|j||jj|qaqaWx'|jD]}	|jj|	jdqW|jjdS)	Nrznegative timeoutg@@ztimeout too bigz8GetQueuedCompletionStatus() returned an unexpected eventr#z)err=%s transferred=%s key=%#x address=%#xstatus)r
ValueErrorrrr
ZGetQueuedCompletionStatusrrpopKeyErrorr)Z	get_debugr*rr;rMrr'doner(r.rr=r/rr rc)rrrrrZtransferredrr rmrrrrrrrrr<sJ	"


#
zIocpProactor._pollcCs|jj|dS)N)rr])rrrrr
_stop_servingszIocpProactor._stop_servingcCsFxt|jjD]\}\}}}}|jr=qt|trOqy|jWqtk
r}z[|jdk	ridd6|d6|d6}|j	r|j	|d<n|jj
|nWYdd}~XqXqWx,|jr
|jdstj
dqqWg|_|jdk	rBtj|jd|_ndS)NzCancelling a future failedr#r$r%r&rz"taking long time to close proactor)listritemsZ	cancelledrrCr'r(r)rr*r<rdebugrrr;rM)rr r>rrrr+r,rrrrbs..
	*	zIocpProactor.closecCs|jdS)N)rb)rrrrrdszIocpProactor.__del__)r1r2r3r4rrrrrrrrrrsrrjrrOrrrrNrr<rrbrdrrrrrs.
 
	7 c@seZdZddZdS)r|c

swtj|d|d|d|d|d||_fdd}jjjtjj}	|	j|dS)Nrrrrrcs jj}j|dS)N)_procZpollZ_process_exited)rm
returncode)rrrrsz4_WindowsSubprocessTransport._start.<locals>.callback)	r	Popenrr)rIrintr6rv)
rr~rrrrrrrrmr)rr_starts!z"_WindowsSubprocessTransport._startN)r1r2r3rrrrrr|sr|c@seZdZeZdS)_WindowsDefaultEventLoopPolicyN)r1r2r3r
Z
_loop_factoryrrrrrsr)-r4r;rrrrrRrrrrrrr	r
Z
coroutinesrlogr__all__r[rZERROR_CONNECTION_REFUSEDZERROR_CONNECTION_ABORTEDrrr{rr5rCrHobjectrPZBaseSelectorEventLoopreZBaseProactorEventLooprrZBaseSubprocessTransportr|r
ZBaseDefaultEventLoopPolicyrrrrrr<module>sJ		0J4;]j