Author: zturner Date: Tue Nov 24 15:35:40 2015 New Revision: 254024 URL: http://llvm.org/viewvc/llvm-project?rev=254024&view=rev Log: Make swig_bot server support Ctrl+C
Modified: lldb/trunk/scripts/swig_bot.py lldb/trunk/scripts/swig_bot_lib/server.py Modified: lldb/trunk/scripts/swig_bot.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/swig_bot.py?rev=254024&r1=254023&r2=254024&view=diff ============================================================================== --- lldb/trunk/scripts/swig_bot.py (original) +++ lldb/trunk/scripts/swig_bot.py Tue Nov 24 15:35:40 2015 @@ -57,6 +57,9 @@ if __name__ == "__main__": else: logging.error("Unknown mode specified. Expected client or server.") sys.exit(-1) + except KeyboardInterrupt as e: + logging.info("Ctrl+C received. Shutting down...") + sys.exit(-1) except Exception as e: error = traceback.format_exc() logging.error("An error occurred running swig-bot.") Modified: lldb/trunk/scripts/swig_bot_lib/server.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/swig_bot_lib/server.py?rev=254024&r1=254023&r2=254024&view=diff ============================================================================== --- lldb/trunk/scripts/swig_bot_lib/server.py (original) +++ lldb/trunk/scripts/swig_bot_lib/server.py Tue Nov 24 15:35:40 2015 @@ -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: _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits