Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgRepository.java @ 488:45b3b6ca046f
Repository locking mechanism is alive
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Mon, 13 Aug 2012 19:07:59 +0200 |
| parents | db48a77ec8ff |
| children | b3c16d1aede0 |
comparison
equal
deleted
inserted
replaced
| 487:db48a77ec8ff | 488:45b3b6ca046f |
|---|---|
| 437 */ | 437 */ |
| 438 @Experimental(reason="WORK IN PROGRESS") | 438 @Experimental(reason="WORK IN PROGRESS") |
| 439 public HgRepositoryLock getWorkingDirLock() { | 439 public HgRepositoryLock getWorkingDirLock() { |
| 440 if (wdLock == null) { | 440 if (wdLock == null) { |
| 441 int timeout = getLockTimeout(); | 441 int timeout = getLockTimeout(); |
| 442 File lf = new File(getRepositoryRoot(), "wlock"); | |
| 442 synchronized (this) { | 443 synchronized (this) { |
| 443 if (wdLock == null) { | 444 if (wdLock == null) { |
| 444 wdLock = new HgRepositoryLock(new File(repoPathHelper.rewrite("wlock").toString()), timeout); | 445 wdLock = new HgRepositoryLock(lf, timeout); |
| 445 } | 446 } |
| 446 } | 447 } |
| 447 } | 448 } |
| 448 return wdLock; | 449 return wdLock; |
| 449 } | 450 } |
| 450 | 451 |
| 451 @Experimental(reason="WORK IN PROGRESS") | 452 @Experimental(reason="WORK IN PROGRESS") |
| 452 public HgRepositoryLock getStoreLock() { | 453 public HgRepositoryLock getStoreLock() { |
| 453 if (storeLock == null) { | 454 if (storeLock == null) { |
| 454 int timeout = getLockTimeout(); | 455 int timeout = getLockTimeout(); |
| 456 File fl = new File(getRepositoryRoot(), repoPathHelper.rewrite("lock").toString()); | |
| 455 synchronized (this) { | 457 synchronized (this) { |
| 456 if (storeLock == null) { | 458 if (storeLock == null) { |
| 457 storeLock = new HgRepositoryLock(new File(repoPathHelper.rewrite("store/lock").toString()), timeout); | 459 storeLock = new HgRepositoryLock(fl, timeout); |
| 458 } | 460 } |
| 459 } | 461 } |
| 460 } | 462 } |
| 461 return storeLock; | 463 return storeLock; |
| 462 } | 464 } |
