3 ig @sddlZddlZddlZddlmZyddlmZWn ek rTddlmZYnXdddgZGddde Z ej dkrd d Z nd d Z dddZ dddZddZddZddadddZdddZdS) N)partial) monotonic)timeNoWayToWaitForSocketError wait_for_readwait_for_writec@s eZdZdS)rN)__name__ __module__ __qualname__r r .do_poll)rrPOLLINPOLLOUTr"registerrr)rrr rmaskr%r )r$r poll_wait_for_socketZs     r*cOs tddS)Nzno select-equivalent available)r)rkwargsr r r null_wait_for_socketnsr,c Cs:ytj}t|jdWnttfk r0dSXdSdS)NrFT)rr"rAttributeErrorr)r$r r r _have_working_pollrs r.cOs*tr tanttdrtantat||S)Nr)r.r*wait_for_sockethasattrrr!r,)rr+r r r r/s  r/cCst|d|dS)zWaits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. T)rr)r/)rrr r r rscCst|d|dS)zWaits for writing to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. T)r r)r/)rrr r r rs)r r)FFN)FFN)N)N)rrsys functoolsrrr ImportError__all__ Exceptionr version_inforr!r*r,r.r/rrr r r r s&