Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
epolls.py32 linesDownload Raw Back to hubs
1import errno2from eventlet import patcher, support3from eventlet.hubs import hub, poll4select = patcher.original('select')5 6 7def is_available():8    return hasattr(select, 'epoll')9 10 11# NOTE: we rely on the fact that the epoll flag constants12# are identical in value to the poll constants13class Hub(poll.Hub):14    def __init__(self, clock=None):15        super(Hub, self).__init__(clock=clock)16        self.poll = select.epoll()17 18    def add(self, evtype, fileno, cb, tb, mac):19        oldlisteners = bool(self.listeners[self.READ].get(fileno) or20                            self.listeners[self.WRITE].get(fileno))21        # not super() to avoid double register()22        listener = hub.BaseHub.add(self, evtype, fileno, cb, tb, mac)23        try:24            self.register(fileno, new=not oldlisteners)25        except IOError as ex:    # ignore EEXIST, #8026            if support.get_errno(ex) != errno.EEXIST:27                raise28        return listener29 30    def do_poll(self, seconds):31        return self.poll.poll(seconds)32 
codekingpro/portable-devtools · Team Ai