diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2009-10-23 18:47:26 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2009-10-23 18:47:26 +0000 |
| commit | a581be3f131e53b3f18aff392d5d28222d20e71d (patch) | |
| tree | 02d12d47aaf3eb1247b77ac2442ec6857ac82f7f /python/qpid/selector.py | |
| parent | a63be09b172c9091b87dedaceaa755777b914756 (diff) | |
| download | qpid-python-a581be3f131e53b3f18aff392d5d28222d20e71d.tar.gz | |
reworked fix of r827747 (QPID-2149)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@829173 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/selector.py')
| -rw-r--r-- | python/qpid/selector.py | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/python/qpid/selector.py b/python/qpid/selector.py index a7993be0b1..ca5946c3f9 100644 --- a/python/qpid/selector.py +++ b/python/qpid/selector.py @@ -16,8 +16,8 @@ # specific language governing permissions and limitations # under the License. # -import atexit, time, socket -from compat import select, set +import atexit, time +from compat import select, set, selectable_waiter from threading import Thread, Lock class Acceptor: @@ -39,23 +39,6 @@ class Acceptor: sock, addr = self.sock.accept() self.handler(sock) -class Sink: - - def __init__(self, sock): - self.sock = sock - - def fileno(self): - return self.sock.fileno() - - def reading(self): - return True - - def readable(self): - self.sock.recv(65536) - - def __repr__(self): - return "Sink(%r)" % self.sock.fileno() - class Selector: lock = Lock() @@ -78,20 +61,13 @@ class Selector: self.selectables = set() self.reading = set() self.writing = set() - listener = socket.socket() - listener.bind(('', 0)) - listener.listen(1) - me_ip, me_port = listener.getsockname() - self.wakeup_sock = socket.socket() - self.wakeup_sock.connect(("127.0.0.1", me_port)) - self.wait_sock, me = listener.accept() - listener.close() - self.reading.add(Sink(self.wait_sock)) + self.waiter = selectable_waiter() + self.reading.add(self.waiter) self.stopped = False self.thread = None def wakeup(self): - self.wakeup_sock.send("\0") + self.waiter.wakeup() def register(self, selectable): self.selectables.add(selectable) |
