HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/lib/python3.7/__pycache__/asyncore.cpython-37.pyc
B

îÇ{a–Nã@shdZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZeee
eeeehƒZyeWnek
r¤iZYnXdd„ZGdd„deƒZeeefZdd	„Zd
d„Z dd
„Z!dd„Z"d&dd„Z#d'dd„Z$e$Z%d(dd„Z&Gdd„dƒZ'Gdd„de'ƒZ(dd„Z)d)dd „Z*ej+d!krdGd"d#„d#ƒZ,Gd$d%„d%e'ƒZ-dS)*a Basic infrastructure for asynchronous socket service clients and servers.

There are only two ways to have a program on a single processor do "more
than one thing at a time".  Multi-threaded programming is the simplest and
most popular way to do it, but there is another very different technique,
that lets you have nearly all the advantages of multi-threading, without
actually using multiple threads. it's really only practical if your program
is largely I/O bound. If your program is CPU bound, then pre-emptive
scheduled threads are probably what you really need. Network servers are
rarely CPU-bound, however.

If your operating system supports the select() system call in its I/O
library (and nearly all do), then you can use it to juggle multiple
communication channels at once; doing other work while your I/O is taking
place in the "background."  Although this strategy can seem strange and
complex, especially at first, it is in many ways easier to understand and
control than multi-threaded programming. The module documented here solves
many of the difficult problems for you, making the task of building
sophisticated high-performance network servers and clients a snap.
éN)
ÚEALREADYÚEINPROGRESSÚEWOULDBLOCKÚ
ECONNRESETÚEINVALÚENOTCONNÚ	ESHUTDOWNÚEISCONNÚEBADFÚECONNABORTEDÚEPIPEÚEAGAINÚ	errorcodec
Cs>y
t |¡Stttfk
r8|tkr0t|Sd|SXdS)NzUnknown error %s)ÚosÚstrerrorÚ
ValueErrorÚ
OverflowErrorÚ	NameErrorr)Úerr©rú/usr/lib/python3.7/asyncore.pyÚ	_strerrorDs
rc@seZdZdS)ÚExitNowN)Ú__name__Ú
__module__Ú__qualname__rrrrrLsrcCs:y| ¡Wn(tk
r"‚Yn| ¡YnXdS)N)Úhandle_read_eventÚ_reraised_exceptionsÚhandle_error)ÚobjrrrÚreadQsr cCs:y| ¡Wn(tk
r"‚Yn| ¡YnXdS)N)Úhandle_write_eventrr)rrrrÚwriteYsr"cCs:y| ¡Wn(tk
r"‚Yn| ¡YnXdS)N)Úhandle_expt_eventrr)rrrrÚ
_exceptionasr$c
CsÆyX|tj@r| ¡|tj@r&| ¡|tj@r8| ¡|tjtjBtj	B@rV| 
¡Wnhtk
rš}z$|jdt
kr‚| ¡n| 
¡Wdd}~XYn(tk
r®‚Yn| ¡YnXdS)Nr)ÚselectÚPOLLINrÚPOLLOUTr!ÚPOLLPRIr#ZPOLLHUPZPOLLERRZPOLLNVALÚhandle_closeÚOSErrorÚargsÚ
_DISCONNECTEDrr)rÚflagsÚerrrÚ	readwriteis"



r/çc	CsL|dkrt}|rHg}g}g}x\t| ¡ƒD]L\}}| ¡}| ¡}|rR| |¡|rf|jsf| |¡|sn|r,| |¡q,Wg|krš|krš|kr¬nnt |¡dSt	 	||||¡\}}}x(|D] }| 
|¡}|dkràqÈt|ƒqÈWx*|D]"}| 
|¡}|dkrqòt|ƒqòWx.|D]&}| 
|¡}|dkr:qt
|ƒqWdS)N)Ú
socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ	acceptingÚtimeZsleepr%Úgetr r"r$)	ÚtimeoutÚmapÚrÚwr.ÚfdrZis_rZis_wrrrÚpoll}sD


"








r?cCsÈ|dkrt}|dk	r t|dƒ}t ¡}|rÄx\t| ¡ƒD]L\}}d}| ¡r^|tjtjBO}| 	¡rv|j
sv|tjO}|r:| ||¡q:W| |¡}x.|D]&\}}| 
|¡}|dkr¶qšt||ƒqšWdS)Nièr)r1Úintr%r?r2r3r4r&r(r5r7r'Úregisterr9r/)r:r;Zpollsterr>rr-r<rrrÚpoll2¤s(


rBç>@FcCsj|dkrt}|r ttdƒr t}nt}|dkrBx8|r>|||ƒq.Wn$x"|rd|dkrd|||ƒ|d}qDWdS)Nr?ré)r1Úhasattrr%rBr?)r:Zuse_pollr;ÚcountZpoll_funrrrÚloopÀs
rGc@s6eZdZdZdZdZdZdZdZe	dhƒZ
dAdd„Zdd„ZeZ
dBdd	„ZdCd
d„Zejejfdd
„ZdDdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZdEd'd(„Z d)d*„Z!d+d,„Z"d-d.„Z#d/d0„Z$d1d2„Z%d3d4„Z&d5d6„Z'd7d8„Z(d9d:„Z)d;d<„Z*d=d>„Z+d?d@„Z,dS)FÚ
dispatcherFNÚwarningc
Cs |dkrt|_n||_d|_|r–| d¡| ||¡d|_y| ¡|_Wqœtk
r’}z*|j	dt
tfkrvd|_n| |¡‚Wdd}~XYqœXnd|_
dS)NrTF)r1Ú_mapÚ_filenoÚsetblockingÚ
set_socketÚ	connectedZgetpeernameÚaddrr*r+rrÚdel_channelÚsocket)ÚselfÚsockr;rrrrÚ__init__Üs 

zdispatcher.__init__cCs˜|jjd|jjg}|jr.|jr.| d¡n|jr>| d¡|jdk	r‚y| d|j¡Wn$tk
r€| t|jƒ¡YnXdd 	|¡t
|ƒfS)NÚ.Z	listeningrNz%s:%dz<%s at %#x>ú )Ú	__class__rrr7rOr6rNÚ	TypeErrorÚreprÚjoinÚid)rRZstatusrrrÚ__repr__üs

zdispatcher.__repr__cCs|dkr|j}|||j<dS)N)rJrK)rRr;rrrÚadd_channelszdispatcher.add_channelcCs,|j}|dkr|j}||kr"||=d|_dS)N)rKrJ)rRr;r>rrrrPszdispatcher.del_channelcCs.||f|_t ||¡}| d¡| |¡dS)Nr)Zfamily_and_typerQrLrM)rRZfamilyÚtyperSrrrÚ
create_sockets

zdispatcher.create_socketcCs||_| ¡|_| |¡dS)N)rQÚfilenorKr])rRrSr;rrrrM s
zdispatcher.set_socketcCsDy*|j tjtj|j tjtj¡dB¡Wntk
r>YnXdS)NrD)rQZ
setsockoptÚ
SOL_SOCKETZSO_REUSEADDRÚ
getsockoptr*)rRrrrÚset_reuse_addr%s
zdispatcher.set_reuse_addrcCsdS)NTr)rRrrrr46szdispatcher.readablecCsdS)NTr)rRrrrr59szdispatcher.writablecCs(d|_tjdkr|dkrd}|j |¡S)NTÚnté)r7rÚnamerQÚlisten)rRZnumrrrrg@szdispatcher.listencCs||_|j |¡S)N)rOrQÚbind)rRrOrrrrhFszdispatcher.bindcCspd|_d|_|j |¡}|tttfks8|tkrBtj	dkrB||_
dS|dtfkr^||_
| ¡nt
|t|ƒ‚dS)NFTrdr)rNÚ
connectingrQZ
connect_exrrrrrrfrOr	Úhandle_connect_eventr*r)rRZaddressrrrrÚconnectJs
zdispatcher.connectc
Csny|j ¡\}}WnNtk
r&dStk
r`}z|jdtttfkrNdS‚Wdd}~XYn
X||fSdS)Nr)rQÚacceptrXr*r+rrr
)rRZconnrOÚwhyrrrrlXszdispatcher.acceptc
Csfy|j |¡}|Stk
r`}z2|jdtkr4dS|jdtkrN| ¡dS‚Wdd}~XYnXdS)Nr)rQÚsendr*r+rr,r))rRÚdataÚresultrmrrrrnfszdispatcher.sendc
Cshy$|j |¡}|s| ¡dS|SWn>tk
rb}z |jdtkrP| ¡dS‚Wdd}~XYnXdS)Nór)rQÚrecvr)r*r+r,)rRÚbuffer_sizerormrrrrrsszdispatcher.recvc
Csnd|_d|_d|_| ¡|jdk	rjy|j ¡Wn6tk
rh}z|jdtt	fkrX‚Wdd}~XYnXdS)NFr)
rNr7rirPrQÚcloser*r+rr
)rRrmrrrrt…s
zdispatcher.closecCstj dt|ƒ¡dS)Nzlog: %s
)ÚsysÚstderrr"Ústr)rRÚmessagerrrÚlog•szdispatcher.logÚinfocCs||jkrtd||fƒdS)Nz%s: %s)Úignore_log_typesÚprint)rRrxr^rrrÚlog_info˜s
zdispatcher.log_infocCs:|jr| ¡n&|js.|jr$| ¡| ¡n| ¡dS)N)r7Ú
handle_acceptrNrirjÚhandle_read)rRrrrrœs

zdispatcher.handle_read_eventcCs@|j tjtj¡}|dkr(t|t|ƒƒ‚| ¡d|_d|_dS)NrTF)	rQrbraÚSO_ERRORr*rÚhandle_connectrNri)rRrrrrrj¨szdispatcher.handle_connect_eventcCs*|jr
dS|js|jr| ¡| ¡dS)N)r7rNrirjÚhandle_write)rRrrrr!°szdispatcher.handle_write_eventcCs0|j tjtj¡}|dkr$| ¡n| ¡dS)Nr)rQrbrar€r)Úhandle_expt)rRrrrrr#»s
zdispatcher.handle_expt_eventcCsXtƒ\}}}}yt|ƒ}Wndt|ƒ}YnX| d||||fd¡| ¡dS)Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)Úerror)Úcompact_tracebackrYr[r}r))rRZnilÚtÚvÚtbinfoZ	self_reprrrrrÊszdispatcher.handle_errorcCs| dd¡dS)Nz!unhandled incoming priority eventrI)r})rRrrrrƒÞszdispatcher.handle_exptcCs| dd¡dS)Nzunhandled read eventrI)r})rRrrrrászdispatcher.handle_readcCs| dd¡dS)Nzunhandled write eventrI)r})rRrrrr‚äszdispatcher.handle_writecCs| dd¡dS)Nzunhandled connect eventrI)r})rRrrrrçszdispatcher.handle_connectcCs| ¡}|dk	r|j|ŽdS)N)rlÚhandle_accepted)rRZpairrrrr~êszdispatcher.handle_acceptcCs| ¡| dd¡dS)Nzunhandled accepted eventrI)rtr})rRrSrOrrrr‰ïszdispatcher.handle_acceptedcCs| dd¡| ¡dS)Nzunhandled close eventrI)r}rt)rRrrrr)ószdispatcher.handle_close)NN)N)N)N)rz)-rrrÚdebugrNr7riÚclosingrOÚ	frozensetr{rTr\Ú__str__r]rPrQZAF_INETZSOCK_STREAMr_rMrcr4r5rgrhrkrlrnrrrtryr}rrjr!r#rrƒrr‚rr~r‰r)rrrrrHÒsL

 


	


rHc@s6eZdZddd„Zdd„Zdd„Zdd	„Zd
d„ZdS)
Údispatcher_with_sendNcCst |||¡d|_dS)Nrq)rHrTÚ
out_buffer)rRrSr;rrrrTþszdispatcher_with_send.__init__cCs.d}t ||jdd…¡}|j|d…|_dS)Nri)rHrnr)rRZnum_sentrrrÚ
initiate_sendsz"dispatcher_with_send.initiate_sendcCs| ¡dS)N)r)rRrrrr‚sz!dispatcher_with_send.handle_writecCs|jpt|jƒS)N)rNÚlenr)rRrrrr5
szdispatcher_with_send.writablecCs0|jr| dt|ƒ¡|j||_| ¡dS)Nz
sending %s)rŠr}rYrr)rRrorrrrn
szdispatcher_with_send.send)NN)rrrrTrr‚r5rnrrrrrŽüs

rŽcCs†t ¡\}}}g}|stdƒ‚x0|rN| |jjj|jjjt|j	ƒf¡|j
}q W~|d\}}}d dd„|Dƒ¡}|||f|||fS)Nztraceback does not existéÿÿÿÿrVcSsg|]}d|‘qS)z
[%s|%s|%s]r)Ú.0Úxrrrú
<listcomp>(sz%compact_traceback.<locals>.<listcomp>)ruÚexc_infoÚAssertionErrorr6Útb_frameÚf_codeÚco_filenameÚco_namerwÚ	tb_linenoÚtb_nextrZ)r†r‡ÚtbrˆÚfileZfunctionÚlinerzrrrr…s
r…cCs˜|dkrt}x~t| ¡ƒD]n}y| ¡Wqtk
rb}z|jdtkrLn|sR‚Wdd}~XYqtk
rv‚Yq|s‚‚YqXqW| ¡dS)Nr)	r1r2Úvaluesrtr*r+r
rÚclear)r;Z
ignore_allr”rrrÚ	close_all+s r£Úposixc@sNeZdZdd„Zdd„Zdd„Zdd„Zdd
d„ZeZeZ	dd
„Z
dd„Zd	S)Úfile_wrappercCst |¡|_dS)N)rÚdupr>)rRr>rrrrTPszfile_wrapper.__init__cCs*|jdkrtjd|t|d| ¡dS)Nrzunclosed file %r)Úsource)r>ÚwarningsÚwarnÚResourceWarningrt)rRrrrÚ__del__Ss
zfile_wrapper.__del__cGstj|jf|žŽS)N)rr r>)rRr+rrrrrYszfile_wrapper.recvcGstj|jf|žŽS)N)rr"r>)rRr+rrrrn\szfile_wrapper.sendNcCs(|tjkr|tjkr|sdStdƒ‚dS)Nrz-Only asyncore specific behaviour implemented.)rQrar€ÚNotImplementedError)rRÚlevelZoptnameZbuflenrrrrb_s


zfile_wrapper.getsockoptcCs(|jdkrdS|j}d|_t |¡dS)Nrr’)r>rrt)rRr>rrrrtjs

zfile_wrapper.closecCs|jS)N)r>)rRrrrr`qszfile_wrapper.fileno)N)rrrrTr«rrrnrbr r"rtr`rrrrr¥Ks
r¥c@seZdZddd„Zdd„ZdS)Úfile_dispatcherNcCsPt |d|¡d|_y| ¡}Wntk
r4YnX| |¡t |d¡dS)NTF)rHrTrNr`ÚAttributeErrorÚset_filerÚset_blocking)rRr>r;rrrrTvs
zfile_dispatcher.__init__cCs"t|ƒ|_|j ¡|_| ¡dS)N)r¥rQr`rKr])rRr>rrrr°s
zfile_dispatcher.set_file)N)rrrrTr°rrrrr®ts
r®)r0N)r0N)rCFNN)NF).Ú__doc__r%rQrur8r¨rÚerrnorrrrrrrr	r
rrr
rrŒr,r1rrÚ	ExceptionrÚKeyboardInterruptÚ
SystemExitrr r"r$r/r?rBZpoll3rGrHrŽr…r£rfr¥r®rrrrÚ<module>/sB<


'

,
)