##// END OF EJS Templates
changelog-delay: adds some check around delaying and diverting write...
marmoute -
r51995:594f9128 default
parent child Browse files
Show More
@@ -448,6 +448,7 b' class changelog(revlog.revlog):'
448 448
449 449 def delayupdate(self, tr):
450 450 """delay visibility of index updates to other readers"""
451 assert not self._inner.is_open
451 452 if self._docket is None and not self._delayed:
452 453 if len(self) == 0:
453 454 self._divert = True
@@ -468,6 +469,7 b' class changelog(revlog.revlog):'
468 469
469 470 def _finalize(self, tr):
470 471 """finalize index updates"""
472 assert not self._inner.is_open
471 473 self._delayed = False
472 474 self.opener = self._realopener
473 475 self._inner.opener = self.opener
@@ -494,6 +496,7 b' class changelog(revlog.revlog):'
494 496 def _writepending(self, tr):
495 497 """create a file containing the unfinalized state for
496 498 pretxnchangegroup"""
499 assert not self._inner.is_open
497 500 if self._docket:
498 501 return self._docket.write(tr, pending=True)
499 502 if self._delaybuf:
@@ -620,6 +620,13 b' class _InnerRevlog:'
620 620 """True is a writing context is open"""
621 621 return self._writinghandles is not None
622 622
623 @property
624 def is_open(self):
625 """True if any file handle is being held
626
627 Used for assert and debug in the python code"""
628 return self._segmentfile.is_open or self._segmentfile_sidedata.is_open
629
623 630 @contextlib.contextmanager
624 631 def writing(self, transaction, data_end=None, sidedata_end=None):
625 632 """Open the revlog files for writing
@@ -50,6 +50,15 b' class randomaccessfile:'
50 50 self._cached_chunk = b''
51 51 self._cached_chunk_position = 0
52 52
53 @property
54 def is_open(self):
55 """True if any file handle is being held
56
57 Used for assert and debug in the python code"""
58 return (
59 self.reading_handle is not None or self.writing_handle is not None
60 )
61
53 62 def _open(self, mode=b'r'):
54 63 """Return a file object"""
55 64 return self.opener(self.filename, mode=mode)
General Comments 0
You need to be logged in to leave comments. Login now