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)
|
return: (fd, mode)
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
self._wait(nsec)
|
||||||
|
if self.events:
|
||||||
|
return self.events.pop(0)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def wait(self, nsec):
|
def wait(self, nsec):
|
||||||
""" return all events raised in the pollster when calling the
|
""" return all events raised in the pollster when calling the
|
||||||
@ -52,7 +56,9 @@ class PollerBase(object):
|
|||||||
|
|
||||||
return: [(fd, mode), ....]
|
return: [(fd, mode), ....]
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
events = self._wait(nsec)
|
||||||
|
self.events = []
|
||||||
|
return events
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" close the pollster """
|
""" close the pollster """
|
||||||
@ -109,24 +115,13 @@ class SelectPoller(PollerBase):
|
|||||||
self.events.extend(events)
|
self.events.extend(events)
|
||||||
return self.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):
|
def close(self):
|
||||||
self.read_fds = []
|
self.read_fds = []
|
||||||
self.write_fds = []
|
self.write_fds = []
|
||||||
|
|
||||||
if hasattr(select, 'kqueue'):
|
if hasattr(select, 'kqueue'):
|
||||||
|
|
||||||
class KQueuePoller(object):
|
class KQueuePoller(PollerBase):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.kq = select.kqueue()
|
self.kq = select.kqueue()
|
||||||
@ -194,22 +189,11 @@ if hasattr(select, 'kqueue'):
|
|||||||
# return all events
|
# return all events
|
||||||
return self.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):
|
def close(self):
|
||||||
self.kq.close()
|
self.kq.close()
|
||||||
|
|
||||||
if hasattr(select, "epoll"):
|
if hasattr(select, "epoll"):
|
||||||
class EpollPoller(object):
|
class EpollPoller(PollerBase):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.poll = select.epoll()
|
self.poll = select.epoll()
|
||||||
@ -324,22 +308,13 @@ if hasattr(select, "epoll"):
|
|||||||
# return all events
|
# return all events
|
||||||
return self.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):
|
def close(self):
|
||||||
self.poll.close()
|
self.poll.close()
|
||||||
|
|
||||||
|
|
||||||
if hasattr(select, "poll") or hasattr(select, "devpoll"):
|
if hasattr(select, "poll") or hasattr(select, "devpoll"):
|
||||||
|
|
||||||
class _PollerBase(object):
|
class _PollerBase(PollerBase):
|
||||||
|
|
||||||
POLL_IMPL = None
|
POLL_IMPL = None
|
||||||
|
|
||||||
@ -446,17 +421,6 @@ if hasattr(select, "poll") or hasattr(select, "devpoll"):
|
|||||||
self.events.extend(all_events)
|
self.events.extend(all_events)
|
||||||
return self.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):
|
def close(self):
|
||||||
for fd in self.fds:
|
for fd in self.fds:
|
||||||
self.poll.unregister(fd)
|
self.poll.unregister(fd)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user