summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-02-26 18:00:18 +0100
committerVictor Stinner <victor.stinner@gmail.com>2014-02-26 18:00:18 +0100
commit5f6649b7c72824f32082922170f6e5ef5d1d7b92 (patch)
tree65b0b8af0b012f6c674211d81dfbd2526558eba6 /examples
parentda79fc7e24f286cd57525d8d4b221930b9d221a5 (diff)
downloadtrollius-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-xexamples/tcp_echo.py15
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: