made hubs other than twistedr compatible with newer trampoline

This commit is contained in:
Denis Bilenko
2008-10-27 22:47:46 +06:00
parent 2eb3ea3f29
commit 98204fe7b6
5 changed files with 7 additions and 2 deletions

View File

@@ -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)

View File

@@ -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):

View File

@@ -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):

View File

@@ -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)

View File

@@ -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