My first suspect (and that was my main problem when implementing this feature) is the time spent in the monitor loop to other activities (for example, sleep(0)). ip.get() is reading a bufferless socket; the time spent out of this function makes this implementation prone to miss some updates.
while not event_stop.ready():
eventlet.sleep(0)
ip_address = []
with common_utils.Timer(timeout=2, raise_exception=False):
ip_address = ip.get()
I'll propose a new implementation and tests to probe the robustness.
Hi Brian:
My first suspect (and that was my main problem when implementing this feature) is the time spent in the monitor loop to other activities (for example, sleep(0)). ip.get() is reading a bufferless socket; the time spent out of this function makes this implementation prone to miss some updates.
while not event_stop.ready(): sleep(0) utils.Timer( timeout= 2, raise_exception =False) :
eventlet.
ip_address = []
with common_
ip_address = ip.get()
I'll propose a new implementation and tests to probe the robustness.