aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/tcp.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-08-25 10:22:09 +1200
committerAldo Cortesi <aldo@nullcube.com>2013-08-25 10:22:09 +1200
commit7428f954744725381ced7c273609ca14d767dfff (patch)
tree600d64ee9c217b0dab769cd00db12748c5c5aab8 /netlib/tcp.py
parent62edceee093dd54956ed5b623dfb4cb8c1309a16 (diff)
downloadmitmproxy-7428f954744725381ced7c273609ca14d767dfff.tar.gz
mitmproxy-7428f954744725381ced7c273609ca14d767dfff.tar.bz2
mitmproxy-7428f954744725381ced7c273609ca14d767dfff.zip
Handle interrupted system call errors.
Diffstat (limited to 'netlib/tcp.py')
-rw-r--r--netlib/tcp.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index 31e9a398..bee1f75b 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -376,7 +376,13 @@ class TCPServer:
self.__is_shut_down.clear()
try:
while not self.__shutdown_request:
- r, w, e = select.select([self.socket], [], [], poll_interval)
+ try:
+ r, w, e = select.select([self.socket], [], [], poll_interval)
+ except select.error, ex:
+ if ex[0] == 4:
+ continue
+ else:
+ raise
if self.socket in r:
request, client_address = self.socket.accept()
t = threading.Thread(