Show More
@@ -1204,6 +1204,11 b' class localrepository(object):' | |||
|
1204 | 1204 | '''Lock the non-store parts of the repository (everything under |
|
1205 | 1205 | .hg except .hg/store) and return a weak reference to the lock. |
|
1206 | 1206 | Use this before modifying files in .hg.''' |
|
1207 | l = self._wlockref and self._wlockref() | |
|
1208 | if l is not None and l.held: | |
|
1209 | l.lock() | |
|
1210 | return l | |
|
1211 | ||
|
1207 | 1212 | if (self.ui.configbool('devel', 'all') |
|
1208 | 1213 | or self.ui.configbool('devel', 'check-locks')): |
|
1209 | 1214 | l = self._lockref and self._lockref() |
@@ -1213,10 +1218,6 b' class localrepository(object):' | |||
|
1213 | 1218 | util.debugstacktrace(msg, 1) |
|
1214 | 1219 | else: |
|
1215 | 1220 | self.ui.write_err(msg) |
|
1216 | l = self._wlockref and self._wlockref() | |
|
1217 | if l is not None and l.held: | |
|
1218 | l.lock() | |
|
1219 | return l | |
|
1220 | 1221 | |
|
1221 | 1222 | def unlock(): |
|
1222 | 1223 | if self.dirstate.pendingparentchange(): |
@@ -15,6 +15,22 b'' | |||
|
15 | 15 | > wl = repo.wlock() |
|
16 | 16 | > wl.release() |
|
17 | 17 | > lo.release() |
|
18 | > | |
|
19 | > @command('properlocking', [], '') | |
|
20 | > def properlocking(ui, repo): | |
|
21 | > """check that reentrance is fine""" | |
|
22 | > wl = repo.wlock() | |
|
23 | > lo = repo.lock() | |
|
24 | > tr = repo.transaction('proper') | |
|
25 | > tr2 = repo.transaction('proper') | |
|
26 | > lo2 = repo.lock() | |
|
27 | > wl2 = repo.wlock() | |
|
28 | > wl2.release() | |
|
29 | > lo2.release() | |
|
30 | > tr2.close() | |
|
31 | > tr.close() | |
|
32 | > lo.release() | |
|
33 | > wl.release() | |
|
18 | 34 | > EOF |
|
19 | 35 | |
|
20 | 36 | $ cat << EOF >> $HGRCPATH |
@@ -64,4 +80,5 b'' | |||
|
64 | 80 | */mercurial/dispatch.py:* in <lambda> (glob) |
|
65 | 81 | */mercurial/util.py:* in check (glob) |
|
66 | 82 | $TESTTMP/buggylocking.py:* in buggylocking (glob) |
|
83 | $ hg properlocking | |
|
67 | 84 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now