]> source.dussan.org Git - jgit.git/commitdiff
Simplify locking of FileRepository's index snapshot 35/124235/3
authorMatthias Sohn <matthias.sohn@sap.com>
Fri, 8 Jun 2018 07:50:39 +0000 (09:50 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Fri, 8 Jun 2018 07:54:38 +0000 (09:54 +0200)
synchronize on simple Object monitor instead of using ReentrantLock

Change-Id: I897020ab35786336b51b0fef76ea6071aff8aefa
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java

index d4056871b06e7d6f37dce708032d5b11c2947892..d02888a872db1ca1f4abc8fac9bdbbe8a89a15e4 100644 (file)
@@ -56,7 +56,6 @@ import java.util.HashSet;
 import java.util.Locale;
 import java.util.Objects;
 import java.util.Set;
-import java.util.concurrent.locks.ReentrantLock;
 
 import org.eclipse.jgit.annotations.Nullable;
 import org.eclipse.jgit.api.errors.JGitInternalException;
@@ -125,7 +124,7 @@ public class FileRepository extends Repository {
        private final RefDatabase refs;
        private final ObjectDirectory objectDatabase;
 
-       private final ReentrantLock snapshotLock = new ReentrantLock();
+       private final Object snapshotLock = new Object();
 
        // protected by snapshotLock
        private FileSnapshot snapshot;
@@ -553,8 +552,7 @@ public class FileRepository extends Repository {
                }
 
                File indexFile = getIndexFile();
-               snapshotLock.lock();
-               try {
+               synchronized (snapshotLock) {
                        if (snapshot == null) {
                                snapshot = FileSnapshot.save(indexFile);
                                return;
@@ -562,8 +560,6 @@ public class FileRepository extends Repository {
                        if (!snapshot.isModified(indexFile)) {
                                return;
                        }
-               } finally {
-                       snapshotLock.unlock();
                }
                notifyIndexChanged(false);
        }
@@ -571,11 +567,8 @@ public class FileRepository extends Repository {
        /** {@inheritDoc} */
        @Override
        public void notifyIndexChanged(boolean internal) {
-               snapshotLock.lock();
-               try {
+               synchronized (snapshotLock) {
                        snapshot = FileSnapshot.save(getIndexFile());
-               } finally {
-                       snapshotLock.unlock();
                }
                fireEvent(new IndexChangedEvent(internal));
        }