mò "á¸Ec@sÖdkZdkZdkZeiadfd„ƒYZdeifd„ƒYZedjoudkZeƒZ eƒZ e i ei ei ƒe ide iƒe ide iƒe id ƒe id ƒndS( Nt event_loopcBs2tZd„Zddd„Zd„Zd„ZRS(NcCsg|_d|_d|_dS(Ni(tselfteventst num_channelst max_channels(R((t8/data/zmath/zope/lib/python/ZServer/medusa/event_loop.pyt__init__s  f30.0ic Cs5d}x(to ttiƒƒ} | ||jo·| }g}d} }xa| t |i ƒjoJ|i | \}}| |jo|i|ƒ| d}nP| d} qLW|o2|i ||_ x|D]}||| ƒqËWqênt tiƒ}||_||ijo ||_nti|ƒq WdS(Nii(tlast_event_checkt socket_maptintttimetnowt granularitytfiredtitjtlenRRtwhentwhattappendtasyncoretnRRtpollttimeout( RRR RRR RRRRR ((Rtgos6     cCs3ttiƒƒ}ti|i|||fƒdS(N( R R R tbisecttinsortRRtdeltatcallback(RRRR ((Rtschedule9scCs t|iƒS(N(RRR(R((Rt__len__=s(t__name__t __module__RRRR(((RRs  ttestcBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCstii|ƒdS(N(Rt dispatcherRR(R((RRBscCs dGHdS(Ns Connected!((R((Rthandle_connectEscCs|i S(N(Rt connected(R((RtwritableHscCs!|ipdGH|iƒndS(NsTimeout on connect(RR$tclose(RRR((Rtconnect_timeout_callbackKs cCsdGH|id|iƒdS(NsA Periodic Event has Occurred!i(RRRtperiodic_thing_callback(RRR((RR(Ps(RR RR#R%R'R((((RR!@s     t__main__i itsquirliPf1.0(R*iP(RRR RRR"R!Rtsockettelttt create_sockettAF_INETt SOCK_STREAMRR'R(tconnectR(R,RRR+RR-R R!((Rt?s    +