X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=pdm%2Fcli.py;h=d16cbbdc92bc316f370f819df789f6f18c369ab4;hb=6fde0e19d966a3d83f837a035d05e2afbc20e010;hp=da6bcc53d42d27fa9c37b05e46c0aa7e1ca176cd;hpb=7f97a47e579701c8e033ad73259434777f70ef3e;p=pdm.git diff --git a/pdm/cli.py b/pdm/cli.py index da6bcc5..d16cbbd 100644 --- a/pdm/cli.py +++ b/pdm/cli.py @@ -47,6 +47,9 @@ class client(object): def close(self): self.sk.close() + def fileno(self): + return self.sk.fileno() + def readline(self): while True: p = self.buf.find("\n") @@ -136,7 +139,7 @@ class perfproxy(object): 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) @@ -150,8 +153,13 @@ class perfproxy(object): 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