def close(self):
self.sk.close()
+ def fileno(self):
+ return self.sk.fileno()
+
def readline(self):
while True:
p = self.buf.find("\n")
self.cl.run("subs", self.id)
self.subscribers.add(cb)
- def unsubscribe(self):
+ def unsubscribe(self, cb):
if cb not in self.subscribers:
raise ValueError("Not subscribed")
self.subscribers.remove(cb)
except: pass
def close(self):
- self.cl.run("unbind", self.id)
- del self.cl.proxies[self.id]
+ if self.id is not None:
+ self.cl.run("unbind", self.id)
+ del self.cl.proxies[self.id]
+ self.id = None
+
+ def __del__(self):
+ self.close()
def __enter__(self):
return self