diff options
Diffstat (limited to 'netlib')
-rw-r--r-- | netlib/exceptions.py | 4 | ||||
-rw-r--r-- | netlib/tcp.py | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/netlib/exceptions.py b/netlib/exceptions.py index 05f1054b..dec79c22 100644 --- a/netlib/exceptions.py +++ b/netlib/exceptions.py @@ -54,3 +54,7 @@ class TlsException(NetlibException): class InvalidCertificateException(TlsException): pass + + +class Timeout(TcpException): + pass diff --git a/netlib/tcp.py b/netlib/tcp.py index a8a68139..69dafc1f 100644 --- a/netlib/tcp.py +++ b/netlib/tcp.py @@ -967,3 +967,14 @@ class TCPServer(object): """ Called after server shutdown. """ + + def wait_for_silence(self, timeout=5): + start = time.time() + while 1: + if time.time() - start >= timeout: + raise exceptions.Timeout( + "%s service threads still alive" % + self.handler_counter.count + ) + if self.handler_counter.count == 0: + return |