From 5e6e0ad21acfed32c57ae8ef23a8a0722869afe1 Mon Sep 17 00:00:00 2001 From: Thomas Kluyver Date: Tue, 13 Oct 2015 12:41:09 +0100 Subject: [PATCH] Stop asyncio listening to pty once we've found what we need Closes gh-213 (fingers crossed) --- pexpect/async.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pexpect/async.py b/pexpect/async.py index a798457..136fc0e 100644 --- a/pexpect/async.py +++ b/pexpect/async.py @@ -23,6 +23,7 @@ def expect_async(expecter, timeout=None): return expecter.timeout(e) class PatternWaiter(asyncio.Protocol): + transport = None def __init__(self, expecter): self.expecter = expecter self.fut = asyncio.Future() @@ -30,10 +31,15 @@ class PatternWaiter(asyncio.Protocol): def found(self, result): if not self.fut.done(): self.fut.set_result(result) + self.transport.pause_reading() def error(self, exc): if not self.fut.done(): self.fut.set_exception(exc) + self.transport.pause_reading() + + def connection_made(self, transport): + self.transport = transport def data_received(self, data): spawn = self.expecter.spawn -- 2.6.1