summaryrefslogtreecommitdiff
path: root/examples/subprocess_attach_read_pipe.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/subprocess_attach_read_pipe.py')
-rw-r--r--examples/subprocess_attach_read_pipe.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/examples/subprocess_attach_read_pipe.py b/examples/subprocess_attach_read_pipe.py
index d8a6242..a2f9bb5 100644
--- a/examples/subprocess_attach_read_pipe.py
+++ b/examples/subprocess_attach_read_pipe.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
"""Example showing how to attach a read pipe to a subprocess."""
-import asyncio
+import trollius as asyncio
import os, sys
+from trollius import From
code = """
import os, sys
@@ -17,16 +18,19 @@ def task():
rfd, wfd = os.pipe()
args = [sys.executable, '-c', code, str(wfd)]
- pipe = open(rfd, 'rb', 0)
+ pipe = os.fdopen(rfd, 'rb', 0)
reader = asyncio.StreamReader(loop=loop)
protocol = asyncio.StreamReaderProtocol(reader, loop=loop)
- transport, _ = yield from loop.connect_read_pipe(lambda: protocol, pipe)
+ transport, _ = yield From(loop.connect_read_pipe(lambda: protocol, pipe))
- proc = yield from asyncio.create_subprocess_exec(*args, pass_fds={wfd})
- yield from proc.wait()
+ kwds = {}
+ if sys.version_info >= (3, 2):
+ kwds['pass_fds'] = (wfd,)
+ proc = yield From(asyncio.create_subprocess_exec(*args, **kwds))
+ yield From(proc.wait())
os.close(wfd)
- data = yield from reader.read()
+ data = yield From(reader.read())
print("read = %r" % data.decode())
loop.run_until_complete(task())