Commit 42fd38b8 authored by Michal Vaner's avatar Michal Vaner
Browse files

Fix possible race condition

Reviewed as #400

git-svn-id: svn:// e5f2f494-b856-4b98-b285-d166d9295462
parent f7c04626
......@@ -324,8 +324,14 @@ class ZonemgrRefresh:
return False
def _run_timer(self, start_event):
while self._running:
# Notify run_timer that we already started and are inside the loop.
# It is set only once, but when it was outside the loop, there was
# a race condition and _running was could be set false before we
# could enter it
if start_event:
start_event = None
# If zonemgr has no zone, set timer timeout to self._lowerbound_retry.
if self._zone_mgr_is_empty():
timeout = self._lowerbound_retry
......@@ -354,7 +360,8 @@ class ZonemgrRefresh:
for fd in rlist:
if fd == self._read_sock: # awaken by shutdown socket
# self._running will be False by now, if it is not a false
# alarm
# alarm (linux kernel is said to trigger spurious wakeup
# on a filehandle that is not really readable).
if fd == self._check_sock: # awaken by check socket
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment