[tor-commits] [chutney/master] TorNet: Use wallclock elapsed time for bootstrap
teor at torproject.org
teor at torproject.org
Fri Mar 13 01:11:26 UTC 2020
commit ea611d7633d4aa87c725e9cb7133501c338df8ff
Author: teor <teor at torproject.org>
Date: Wed Feb 19 15:37:27 2020 +1000
TorNet: Use wallclock elapsed time for bootstrap
The previous code counted the number of sleeps.
Using wallclock time is more accurate, and the code is simpler.
Part of 33232.
---
lib/chutney/TorNet.py | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py
index 6dbda36..0917fbf 100644
--- a/lib/chutney/TorNet.py
+++ b/lib/chutney/TorNet.py
@@ -1448,12 +1448,13 @@ class Network(object):
print("Sending SIGHUP to nodes")
return all([n.getController().hup() for n in self._nodes])
+ CHECK_NETWORK_STATUS_DELAY = 0.5
+
def wait_for_bootstrap(self):
print("Waiting for nodes to bootstrap...")
- limit = getenv_int("CHUTNEY_START_TIME", 60)
- delay = 0.5
+ start = time.time()
+ limit = start + getenv_int("CHUTNEY_START_TIME", 60)
controllers = [n.getController() for n in self._nodes]
- elapsed = 0.0
most_recent_status = [ None ] * len(controllers)
while True:
all_bootstrapped = True
@@ -1464,13 +1465,15 @@ class Network(object):
if pct != 100:
all_bootstrapped = False
+ now = time.time()
if all_bootstrapped:
- print("Everything bootstrapped after %s sec"%elapsed)
+ elapsed = now - start
+ print("Everything bootstrapped after {} sec"
+ .format(int(elapsed)))
return True
- if elapsed >= limit:
+ if now >= limit:
break
- time.sleep(delay)
- elapsed += delay
+ time.sleep(Network.CHECK_NETWORK_STATUS_DELAY)
print("Bootstrap failed. Node status:")
for c, status in zip(controllers,most_recent_status):
More information about the tor-commits
mailing list