mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
reuse the code
This commit is contained in:
parent
14f71ebf39
commit
81810d9f04
@ -44,7 +44,11 @@ class PollerBase(object):
|
||||
|
||||
return: (fd, mode)
|
||||
"""
|
||||
raise NotImplementedError
|
||||
self._wait(nsec)
|
||||
if self.events:
|
||||
return self.events.pop(0)
|
||||
return None
|
||||
|
||||
|
||||
def wait(self, nsec):
|
||||
""" return all events raised in the pollster when calling the
|
||||
@ -52,7 +56,9 @@ class PollerBase(object):
|
||||
|
||||
return: [(fd, mode), ....]
|
||||
"""
|
||||
raise NotImplementedError
|
||||
events = self._wait(nsec)
|
||||
self.events = []
|
||||
return events
|
||||
|
||||
def close(self):
|
||||
""" close the pollster """
|
||||
@ -109,24 +115,13 @@ class SelectPoller(PollerBase):
|
||||
self.events.extend(events)
|
||||
return self.events
|
||||
|
||||
def waitfd(self, nsec):
|
||||
self._wait(nsec)
|
||||
if self.events:
|
||||
return self.events.pop(0)
|
||||
return None
|
||||
|
||||
def wait(self, nsec):
|
||||
events = self._wait(nsec)
|
||||
self.events = []
|
||||
return events
|
||||
|
||||
def close(self):
|
||||
self.read_fds = []
|
||||
self.write_fds = []
|
||||
|
||||
if hasattr(select, 'kqueue'):
|
||||
|
||||
class KQueuePoller(object):
|
||||
class KQueuePoller(PollerBase):
|
||||
|
||||
def __init__(self):
|
||||
self.kq = select.kqueue()
|
||||
@ -194,22 +189,11 @@ if hasattr(select, 'kqueue'):
|
||||
# return all events
|
||||
return self.events
|
||||
|
||||
def waitfd(self, nsec=0):
|
||||
self._wait(nsec)
|
||||
if self.events:
|
||||
return self.events.pop(0)
|
||||
return None
|
||||
|
||||
def wait(self, nsec=0):
|
||||
events = self._wait(nsec)
|
||||
self.events = []
|
||||
return events
|
||||
|
||||
def close(self):
|
||||
self.kq.close()
|
||||
|
||||
if hasattr(select, "epoll"):
|
||||
class EpollPoller(object):
|
||||
class EpollPoller(PollerBase):
|
||||
|
||||
def __init__(self):
|
||||
self.poll = select.epoll()
|
||||
@ -324,22 +308,13 @@ if hasattr(select, "epoll"):
|
||||
# return all events
|
||||
return self.events
|
||||
|
||||
def waitfd(self, nsec=0):
|
||||
self._wait(nsec)
|
||||
return self.events.pop(0)
|
||||
|
||||
def wait(self, nsec=0):
|
||||
events = self._wait(nsec)
|
||||
self.events = []
|
||||
return events
|
||||
|
||||
def close(self):
|
||||
self.poll.close()
|
||||
|
||||
|
||||
if hasattr(select, "poll") or hasattr(select, "devpoll"):
|
||||
|
||||
class _PollerBase(object):
|
||||
class _PollerBase(PollerBase):
|
||||
|
||||
POLL_IMPL = None
|
||||
|
||||
@ -446,17 +421,6 @@ if hasattr(select, "poll") or hasattr(select, "devpoll"):
|
||||
self.events.extend(all_events)
|
||||
return self.events
|
||||
|
||||
def waitfd(self, nsec=0):
|
||||
self._wait(nsec)
|
||||
if self.events:
|
||||
return self.events.pop(0)
|
||||
return None
|
||||
|
||||
def wait(self, nsec=0):
|
||||
events = self._wait(nsec)
|
||||
self.events = []
|
||||
return events
|
||||
|
||||
def close(self):
|
||||
for fd in self.fds:
|
||||
self.poll.unregister(fd)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user