[svn] commit: r3497 - in /branches/trac409: ./ src/bin/bind10/bind10.py.in src/bin/stats/tests/isc/util/ src/bin/zonemgr/zonemgr.py.in src/lib/python/isc/util/ src/lib/python/isc/util/tests/

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Nov 9 13:31:52 UTC 2010


Author: jinmei
Date: Tue Nov  9 13:31:51 2010
New Revision: 3497

Log:
sync with trunk

Modified:
    branches/trac409/   (props changed)
    branches/trac409/src/bin/bind10/bind10.py.in   (props changed)
    branches/trac409/src/bin/stats/tests/isc/util/   (props changed)
    branches/trac409/src/bin/zonemgr/zonemgr.py.in
    branches/trac409/src/lib/python/isc/util/   (props changed)
    branches/trac409/src/lib/python/isc/util/tests/   (props changed)

Modified: branches/trac409/src/bin/zonemgr/zonemgr.py.in
==============================================================================
--- branches/trac409/src/bin/zonemgr/zonemgr.py.in (original)
+++ branches/trac409/src/bin/zonemgr/zonemgr.py.in Tue Nov  9 13:31:51 2010
@@ -324,8 +324,14 @@
         return False
 
     def _run_timer(self, start_event):
-        start_event.set()
         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 could be set to false before we
+            # could enter it
+            if start_event:
+                start_event.set()
+                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 @@
             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).
                     continue
                 if fd == self._check_sock: # awaken by check socket
                     self._check_sock.recv(32)




More information about the bind10-changes mailing list