made hubs other than twistedr compatible with newer trampoline
This commit is contained in:
@@ -94,6 +94,7 @@ class BaseHub(object):
|
|||||||
else:
|
else:
|
||||||
self.excs.pop(fileno, None)
|
self.excs.pop(fileno, None)
|
||||||
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
||||||
|
return fileno
|
||||||
|
|
||||||
def remove_descriptor(self, fileno):
|
def remove_descriptor(self, fileno):
|
||||||
self.readers.pop(fileno, None)
|
self.readers.pop(fileno, None)
|
||||||
|
@@ -65,6 +65,7 @@ class Hub(hub.BaseHub):
|
|||||||
self.excs[fileno] = exc
|
self.excs[fileno] = exc
|
||||||
|
|
||||||
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
||||||
|
return fileno
|
||||||
|
|
||||||
def remove_descriptor(self, fileno):
|
def remove_descriptor(self, fileno):
|
||||||
for queue in (self.readers, self.writers):
|
for queue in (self.readers, self.writers):
|
||||||
|
@@ -74,6 +74,7 @@ class Hub(hub.BaseHub):
|
|||||||
self.excs[fileno] = exc
|
self.excs[fileno] = exc
|
||||||
|
|
||||||
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
self.waiters_by_greenlet[greenlet.getcurrent()] = fileno
|
||||||
|
return fileno
|
||||||
|
|
||||||
def remove_descriptor(self, fileno):
|
def remove_descriptor(self, fileno):
|
||||||
for queue in (self.readers, self.writers):
|
for queue in (self.readers, self.writers):
|
||||||
|
@@ -84,7 +84,7 @@ class Hub(hub.BaseHub):
|
|||||||
print "ADD DESCRIPTOR", fileno, read, write, exc
|
print "ADD DESCRIPTOR", fileno, read, write, exc
|
||||||
traceback.print_stack()
|
traceback.print_stack()
|
||||||
|
|
||||||
super(Hub, self).add_descriptor(fileno, read, write, exc)
|
result = super(Hub, self).add_descriptor(fileno, read, write, exc)
|
||||||
flag = 0
|
flag = 0
|
||||||
if read:
|
if read:
|
||||||
flag |= WSGI_POLLIN
|
flag |= WSGI_POLLIN
|
||||||
@@ -94,6 +94,7 @@ class Hub(hub.BaseHub):
|
|||||||
self._connection_wrappers[fileno] = conn
|
self._connection_wrappers[fileno] = conn
|
||||||
print "POLL REGISTER", flag
|
print "POLL REGISTER", flag
|
||||||
self.poll_register(conn, flag)
|
self.poll_register(conn, flag)
|
||||||
|
return result
|
||||||
|
|
||||||
def remove_descriptor(self, fileno):
|
def remove_descriptor(self, fileno):
|
||||||
super(Hub, self).remove_descriptor(fileno)
|
super(Hub, self).remove_descriptor(fileno)
|
||||||
|
@@ -45,12 +45,13 @@ class Hub(hub.BaseHub):
|
|||||||
|
|
||||||
def add_descriptor(self, fileno, read=None, write=None, exc=None):
|
def add_descriptor(self, fileno, read=None, write=None, exc=None):
|
||||||
oldmask = self.get_fn_mask(self.readers.get(fileno), self.writers.get(fileno))
|
oldmask = self.get_fn_mask(self.readers.get(fileno), self.writers.get(fileno))
|
||||||
super(Hub, self).add_descriptor(fileno, read, write, exc)
|
result = super(Hub, self).add_descriptor(fileno, read, write, exc)
|
||||||
|
|
||||||
mask = self.get_fn_mask(read, write)
|
mask = self.get_fn_mask(read, write)
|
||||||
if mask != oldmask:
|
if mask != oldmask:
|
||||||
# Only need to re-register this fileno if the mask changes
|
# Only need to re-register this fileno if the mask changes
|
||||||
self.poll.register(fileno, mask)
|
self.poll.register(fileno, mask)
|
||||||
|
return result
|
||||||
|
|
||||||
def get_fn_mask(self, read, write):
|
def get_fn_mask(self, read, write):
|
||||||
mask = 0
|
mask = 0
|
||||||
|
Reference in New Issue
Block a user