From f5c1ad4f498a1c66c2cc21dc0243cfd438ba7c68 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 13 Oct 2015 17:24:09 +0200 Subject: Fix asyncio issue (3.4.3+) Signed-off-by: Igor Gnatenko --- ...o-listening-to-pty-once-we-ve-found-what-.patch | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 0001-Stop-asyncio-listening-to-pty-once-we-ve-found-what-.patch (limited to '0001-Stop-asyncio-listening-to-pty-once-we-ve-found-what-.patch') diff --git a/0001-Stop-asyncio-listening-to-pty-once-we-ve-found-what-.patch b/0001-Stop-asyncio-listening-to-pty-once-we-ve-found-what-.patch new file mode 100644 index 0000000..b84b4ce --- /dev/null +++ b/0001-Stop-asyncio-listening-to-pty-once-we-ve-found-what-.patch @@ -0,0 +1,41 @@ +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 + -- cgit