17 lines
565 B
Python
17 lines
565 B
Python
|
import socket
|
||
|
import time
|
||
|
|
||
|
def wait_for_port(port, host="127.0.0.1", timeout=40.0):
|
||
|
start_time = time.perf_counter()
|
||
|
while True:
|
||
|
try:
|
||
|
with socket.create_connection((host, port), timeout=timeout):
|
||
|
break
|
||
|
except OSError as ex:
|
||
|
time.sleep(0.1)
|
||
|
if time.perf_counter() - start_time >= timeout:
|
||
|
raise TimeoutError(
|
||
|
"Waited too long for the port {} on host {} to start accepting "
|
||
|
"connections.".format(port, host)
|
||
|
) from ex
|