From a581be3f131e53b3f18aff392d5d28222d20e71d Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Fri, 23 Oct 2009 18:47:26 +0000 Subject: reworked fix of r827747 (QPID-2149) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@829173 13f79535-47bb-0310-9956-ffa450edef68 --- python/qpid/selector.py | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) (limited to 'python/qpid/selector.py') 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) -- cgit v1.2.1