mercurial/dirstate.py
changeset 27399 425dc70037f7
parent 27398 c81675776c95
child 27503 0f4596622273
--- a/mercurial/dirstate.py	Wed Dec 16 20:49:18 2015 -0600
+++ b/mercurial/dirstate.py	Wed Dec 16 20:58:26 2015 -0600
@@ -712,7 +712,12 @@
             for f, e in self._map.iteritems():
                 if e[0] == 'n' and e[3] == now:
                     import time # to avoid useless import
-                    time.sleep(delaywrite)
+                    # rather than sleep n seconds, sleep until the next
+                    # multiple of n seconds
+                    clock = time.time()
+                    start = int(clock) - (int(clock) % delaywrite)
+                    end = start + delaywrite
+                    time.sleep(end - clock)
                     break
 
         st.write(parsers.pack_dirstate(self._map, self._copymap, self._pl, now))