equal
deleted
inserted
replaced
446 if not self._delayed: |
446 if not self._delayed: |
447 super(changelog, self)._write_docket(tr) |
447 super(changelog, self)._write_docket(tr) |
448 |
448 |
449 def delayupdate(self, tr): |
449 def delayupdate(self, tr): |
450 """delay visibility of index updates to other readers""" |
450 """delay visibility of index updates to other readers""" |
|
451 assert not self._inner.is_open |
451 if self._docket is None and not self._delayed: |
452 if self._docket is None and not self._delayed: |
452 if len(self) == 0: |
453 if len(self) == 0: |
453 self._divert = True |
454 self._divert = True |
454 if self._realopener.exists(self._indexfile + b'.a'): |
455 if self._realopener.exists(self._indexfile + b'.a'): |
455 self._realopener.unlink(self._indexfile + b'.a') |
456 self._realopener.unlink(self._indexfile + b'.a') |
466 tr.addpending(b'cl-%i' % id(self), self._writepending) |
467 tr.addpending(b'cl-%i' % id(self), self._writepending) |
467 tr.addfinalize(b'cl-%i' % id(self), self._finalize) |
468 tr.addfinalize(b'cl-%i' % id(self), self._finalize) |
468 |
469 |
469 def _finalize(self, tr): |
470 def _finalize(self, tr): |
470 """finalize index updates""" |
471 """finalize index updates""" |
|
472 assert not self._inner.is_open |
471 self._delayed = False |
473 self._delayed = False |
472 self.opener = self._realopener |
474 self.opener = self._realopener |
473 self._inner.opener = self.opener |
475 self._inner.opener = self.opener |
474 self._inner._segmentfile.opener = self.opener |
476 self._inner._segmentfile.opener = self.opener |
475 self._inner._segmentfile_sidedata.opener = self.opener |
477 self._inner._segmentfile_sidedata.opener = self.opener |
492 self._enforceinlinesize(tr, side_write=False) |
494 self._enforceinlinesize(tr, side_write=False) |
493 |
495 |
494 def _writepending(self, tr): |
496 def _writepending(self, tr): |
495 """create a file containing the unfinalized state for |
497 """create a file containing the unfinalized state for |
496 pretxnchangegroup""" |
498 pretxnchangegroup""" |
|
499 assert not self._inner.is_open |
497 if self._docket: |
500 if self._docket: |
498 return self._docket.write(tr, pending=True) |
501 return self._docket.write(tr, pending=True) |
499 if self._delaybuf: |
502 if self._delaybuf: |
500 # make a temporary copy of the index |
503 # make a temporary copy of the index |
501 fp1 = self._realopener(self._indexfile) |
504 fp1 = self._realopener(self._indexfile) |