diff options
| author | Zachary Turner <zturner@google.com> | 2015-11-24 21:35:40 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2015-11-24 21:35:40 +0000 |
| commit | cc3609362eca771104bc46bb9eb3d0a0846f2675 (patch) | |
| tree | 57f518ef27b4767f6b43ab641bee480b66723d2e /lldb/scripts/swig_bot_lib | |
| parent | 0a2899ca82318b775dfba5bdbb42102393dc6f6e (diff) | |
| download | bcm5719-llvm-cc3609362eca771104bc46bb9eb3d0a0846f2675.tar.gz bcm5719-llvm-cc3609362eca771104bc46bb9eb3d0a0846f2675.zip | |
Make swig_bot server support Ctrl+C
llvm-svn: 254024
Diffstat (limited to 'lldb/scripts/swig_bot_lib')
| -rw-r--r-- | lldb/scripts/swig_bot_lib/server.py | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/lldb/scripts/swig_bot_lib/server.py b/lldb/scripts/swig_bot_lib/server.py index ab9baaf7cc0..0751ce8a29a 100644 --- a/lldb/scripts/swig_bot_lib/server.py +++ b/lldb/scripts/swig_bot_lib/server.py @@ -13,6 +13,7 @@ from __future__ import print_function import argparse import logging import os +import select import socket import struct import sys @@ -53,16 +54,23 @@ def initialize_listening_socket(options): def accept_once(sock, options): logging.debug("Waiting for connection...") - client, addr = sock.accept() - logging.info("Received connection from {}".format(addr)) - data_size = struct.unpack("!I", sockutil.recvall(client, 4))[0] - logging.debug("Expecting {} bytes of data from client".format(data_size)) - data = sockutil.recvall(client, data_size) - logging.info("Received {} bytes of data from client".format(len(data))) - - logging.info("Sending {} byte response".format(len(data))) - client.sendall(struct.pack("!I", len(data))) - client.sendall(data) + while True: + rlist, wlist, xlist = select.select([sock], [], [], 0.5) + if not rlist: + continue + + client, addr = sock.accept() + logging.info("Received connection from {}".format(addr)) + data_size = struct.unpack("!I", sockutil.recvall(client, 4))[0] + logging.debug("Expecting {} bytes of data from client" + .format(data_size)) + data = sockutil.recvall(client, data_size) + logging.info("Received {} bytes of data from client" + .format(len(data))) + + logging.info("Sending {} byte response".format(len(data))) + client.sendall(struct.pack("!I", len(data))) + client.sendall(data) def accept_loop(sock, options): while True: |

