diff --git a/stress_tests/client/__init__.py b/stress_tests/client/__init__.py
index 5fc64fd93986477ea81cb9a55474a75fceb21ad3..dd108feb5a1b4a43539233ab9283aa8256b35615 100644
--- a/stress_tests/client/__init__.py
+++ b/stress_tests/client/__init__.py
@@ -119,9 +119,9 @@ def run(client_notify, result_client, server_notify, server_result):
     client_notify.get()
 
     cad.start()
-
+    started_at = time.monotonic()
     terminating = False
-    while not terminating:
+    while not terminating and (time.monotonic() < started_at + 40):  # run for 40 seconds
         try:
             client_notify.get(timeout=1.0)
             terminating = True
@@ -130,5 +130,7 @@ def run(client_notify, result_client, server_notify, server_result):
         except KeyboardInterrupt:
             break
 
+    server_notify.put(None)
+
     lftf.close()
     # logger.warning('Got %s connections', len(cad.connections))