Qc@sddlZddlZddlZdd dYZdZedkrddlZejejejZ e j d e j Z ee Z ejejejZej d ej Z e je gggdee jZeeGHndS( iNtNonBlockingFilecBs8eZdZdZddZdZdZRS(cCs\||_tj|jjtjtjg|_g|_g|_d|_ d|_ dS(N( tfdtfcntltfilenotF_SETFLtostO_NDELAYt read_fd_sett write_fd_sett exc_fd_settNonet user_datatcallback(tselfR((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyt__init__ s "    cCsd||_x0|jD]%}tj|jtjtjqW||_||_||_||_ dS(N( RRRRRRRR R R (R RRR R R tf((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyt set_callbacks #   icCsxd}|j|jg}|j}|j}dG|GHtj|||\}}}dG|G|G|GH|j|krd}|j|jn|jr|s|s|r|j||||jn|rPqqdGH|jj|S(NisCalling selectsSelect returnedit Returning( RRRR tselecttremoveR R tread(R tamttstatus_changedtreadfdstwritefdstexcfds((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyR"s"   cCs|jj|S(N(Rtwrite(R tdata((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyR8scCst|j|S(N(tgetattrR(R tname((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyt __getattr__;s(t__name__t __module__RRRRR(((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyR s   cCs$dG|G|G|GH|djGHdS(NsCallback calledi(R(trtwteR ((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyR >st__main__t localhostii((R%i(R%i(RRRRR RtsockettAF_INETt SOCK_STREAMtstconnecttmakefileRtssts2RR Rtxxtlen(((s3/usr/lib/python2.7/site-packages/rhn/nonblocking.pyts   4