From 45852a26ad1390f6fc1c8edbeee15a82ec0cb008 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 25 Mar 2012 17:06:44 +0400 Subject: [PATCH] GitHandler: Don't lock on read operations. Read operations of a Git repository can be performed during a write operation on the same repository. Only write operations can't be executed simultaneously. --- plugins/git4idea/src/git4idea/commands/GitHandler.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/git4idea/src/git4idea/commands/GitHandler.java b/plugins/git4idea/src/git4idea/commands/GitHandler.java index 201606677a34..a71aa65e5030 100644 --- a/plugins/git4idea/src/git4idea/commands/GitHandler.java +++ b/plugins/git4idea/src/git4idea/commands/GitHandler.java @@ -621,10 +621,8 @@ public abstract class GitHandler { boolean suspendable = false; switch (myCommand.lockingPolicy()) { case META: - // do nothing no locks are taken for metadata - break; case READ: - vcs.getCommandLock().readLock().lock(); + // need to lock only write operations: reads can be performed even when a write operation is going on break; case WRITE_SUSPENDABLE: suspendable = true; @@ -716,10 +714,7 @@ public abstract class GitHandler { finally { switch (myCommand.lockingPolicy()) { case META: - // do nothing no locks are taken for metadata - break; case READ: - vcs.getCommandLock().readLock().unlock(); break; case WRITE_SUSPENDABLE: case WRITE: