def main(): args = ARGS.parse_args() if args.iocp: from tulip.windows_events import ProactorEventLoop loop = ProactorEventLoop() set_event_loop(loop) else: loop = get_event_loop() loop.run_until_complete(start(loop, args.host, args.port)) loop.close()
def run(self, host='127.0.0.1', port=8000, call_soon=None): if sys.platform == 'win32': from tulip.windows_events import ProactorEventLoop loop = ProactorEventLoop() tulip.set_event_loop(loop) else: loop = tulip.get_event_loop() self.loop = loop task = loop.start_serving( lambda: HttpServer(debug=True, app=self), host, port) socks = loop.run_until_complete(task) if call_soon: loop.call_soon(call_soon) print('Serving on', socks[0].getsockname()) try: loop.run_forever() except KeyboardInterrupt: loop.close()
def run(self, host='127.0.0.1', port=8000, call_soon=None): if sys.platform == 'win32': from tulip.windows_events import ProactorEventLoop loop = ProactorEventLoop() tulip.set_event_loop(loop) else: loop = tulip.get_event_loop() self.loop = loop task = loop.start_serving(lambda: HttpServer(debug=True, app=self), host, port) socks = loop.run_until_complete(task) if call_soon: loop.call_soon(call_soon) print('Serving on', socks[0].getsockname()) try: loop.run_forever() except KeyboardInterrupt: loop.close()
else: print('>>>', cmd.decode('ascii').rstrip()) stdin.write(cmd) # get and print lines from stdout, stderr timeout = None while registered: done, pending = yield from tulip.wait( registered, timeout=timeout, return_when=tulip.FIRST_COMPLETED) if not done: break for f in done: stream = registered.pop(f) res = f.result() print(name[stream], res.decode('ascii').rstrip()) if res != b'': registered[tulip.Task(stream.readline())] = stream timeout = 0.0 stdout_transport.close() stderr_transport.close() if __name__ == '__main__': if sys.platform == 'win32': loop = ProactorEventLoop() tulip.set_event_loop(loop) else: loop = tulip.get_event_loop() loop.run_until_complete(main(loop)) loop.close()
print('>>>', cmd.decode('ascii').rstrip()) stdin.write(cmd) # get and print lines from stdout, stderr timeout = None while registered: done, pending = yield from tulip.wait( registered, timeout=timeout, return_when=tulip.FIRST_COMPLETED) if not done: break for f in done: stream = registered.pop(f) res = f.result() print(name[stream], res.decode('ascii').rstrip()) if res != b'': registered[tulip.Task(stream.readline())] = stream timeout = 0.0 stdout_transport.close() stderr_transport.close() if __name__ == '__main__': if sys.platform == 'win32': loop = ProactorEventLoop() tulip.set_event_loop(loop) else: loop = tulip.get_event_loop() loop.run_until_complete(main(loop)) loop.close()