diff mercurial/dirstatemap.py @ 49686:fc8e37c380d3 stable

dirstate: add a synchronisation point before doing a full dirstate read This will be useful to test some race conditions around the dirstate.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sat, 25 Feb 2023 01:07:44 +0100
parents ecd28d89c29e
children 2be6d5782728
line wrap: on
line diff
--- a/mercurial/dirstatemap.py	Tue Feb 28 12:15:19 2023 +0100
+++ b/mercurial/dirstatemap.py	Sat Feb 25 01:07:44 2023 +0100
@@ -10,6 +10,7 @@
     error,
     pathutil,
     policy,
+    testing,
     txnutil,
     util,
 )
@@ -276,7 +277,9 @@
             self._opener.join(self._filename)
         )
 
+        testing.wait_on_cfg(self._ui, b'dirstate.pre-read-file')
         if self._use_dirstate_v2:
+
             if not self.docket.uuid:
                 return
             st = self._opener.read(self.docket.data_filename())
@@ -541,6 +544,7 @@
                 self._opener.join(self._filename)
             )
 
+            testing.wait_on_cfg(self._ui, b'dirstate.pre-read-file')
             if self._use_dirstate_v2:
                 if self.docket.uuid:
                     # TODO: use mmap when possible