##// END OF EJS Templates
perf: ensure all readlog's reading is done within a `reading` context...
marmoute -
r51902:ffb393dd default
parent child Browse files
Show More
@@ -3759,10 +3759,24 b' def perfrevlogchunks(ui, repo, file_=Non'
3759 datafile = getattr(rl, 'datafile', getattr(rl, 'datafile'))
3759 datafile = getattr(rl, 'datafile', getattr(rl, 'datafile'))
3760 yield getsvfs(repo)(datafile)
3760 yield getsvfs(repo)(datafile)
3761
3761
3762 if getattr(rl, 'reading', None) is not None:
3763
3764 @contextlib.contextmanager
3765 def lazy_reading(rl):
3766 with rl.reading():
3767 yield
3768
3769 else:
3770
3771 @contextlib.contextmanager
3772 def lazy_reading(rl):
3773 yield
3774
3762 def doread():
3775 def doread():
3763 rl.clearcaches()
3776 rl.clearcaches()
3764 for rev in revs:
3777 for rev in revs:
3765 segmentforrevs(rev, rev)
3778 with lazy_reading(rl):
3779 segmentforrevs(rev, rev)
3766
3780
3767 def doreadcachedfh():
3781 def doreadcachedfh():
3768 rl.clearcaches()
3782 rl.clearcaches()
@@ -3776,7 +3790,8 b' def perfrevlogchunks(ui, repo, file_=Non'
3776
3790
3777 def doreadbatch():
3791 def doreadbatch():
3778 rl.clearcaches()
3792 rl.clearcaches()
3779 segmentforrevs(revs[0], revs[-1])
3793 with lazy_reading(rl):
3794 segmentforrevs(revs[0], revs[-1])
3780
3795
3781 def doreadbatchcachedfh():
3796 def doreadbatchcachedfh():
3782 rl.clearcaches()
3797 rl.clearcaches()
@@ -3883,6 +3898,19 b' def perfrevlogrevision(ui, repo, file_, '
3883 node = r.lookup(rev)
3898 node = r.lookup(rev)
3884 rev = r.rev(node)
3899 rev = r.rev(node)
3885
3900
3901 if getattr(r, 'reading', None) is not None:
3902
3903 @contextlib.contextmanager
3904 def lazy_reading(r):
3905 with r.reading():
3906 yield
3907
3908 else:
3909
3910 @contextlib.contextmanager
3911 def lazy_reading(r):
3912 yield
3913
3886 def getrawchunks(data, chain):
3914 def getrawchunks(data, chain):
3887 start = r.start
3915 start = r.start
3888 length = r.length
3916 length = r.length
@@ -3916,7 +3944,8 b' def perfrevlogrevision(ui, repo, file_, '
3916 if not cache:
3944 if not cache:
3917 r.clearcaches()
3945 r.clearcaches()
3918 for item in slicedchain:
3946 for item in slicedchain:
3919 segmentforrevs(item[0], item[-1])
3947 with lazy_reading(r):
3948 segmentforrevs(item[0], item[-1])
3920
3949
3921 def doslice(r, chain, size):
3950 def doslice(r, chain, size):
3922 for s in slicechunk(r, chain, targetsize=size):
3951 for s in slicechunk(r, chain, targetsize=size):
General Comments 0
You need to be logged in to leave comments. Login now