diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-02-26 18:00:18 +0100 |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-02-26 18:00:18 +0100 |
commit | 5f6649b7c72824f32082922170f6e5ef5d1d7b92 (patch) | |
tree | 65b0b8af0b012f6c674211d81dfbd2526558eba6 /examples | |
parent | da79fc7e24f286cd57525d8d4b221930b9d221a5 (diff) | |
download | trollius-5f6649b7c72824f32082922170f6e5ef5d1d7b92.tar.gz |
tcp_echo.py: add --iocp command line option to use IOCP event loop on Windows
Don't setup a signal handler for SIGINT on Windows.
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/tcp_echo.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/examples/tcp_echo.py b/examples/tcp_echo.py index 3c08b15..d743242 100755 --- a/examples/tcp_echo.py +++ b/examples/tcp_echo.py @@ -2,6 +2,7 @@ """TCP echo server example.""" import argparse import asyncio +import sys try: import signal except ImportError: @@ -87,6 +88,9 @@ ARGS.add_argument( ARGS.add_argument( '--port', action="store", dest='port', default=9999, type=int, help='Port number') +ARGS.add_argument( + '--iocp', action="store_true", dest='iocp', + default=False, help='Use IOCP event loop') if __name__ == '__main__': @@ -100,8 +104,15 @@ if __name__ == '__main__': print('Please specify --server or --client\n') ARGS.print_help() else: - loop = asyncio.get_event_loop() - if signal is not None: + if args.iocp: + from asyncio import windows_events + loop = windows_events.ProactorEventLoop() + asyncio.set_event_loop(loop) + else: + loop = asyncio.get_event_loop() + print ('Using backend: {0}'.format(loop.__class__.__name__)) + + if signal is not None and sys.platform != 'win32': loop.add_signal_handler(signal.SIGINT, loop.stop) if args.server: |