Skip to content

Commit

Permalink
Merge branch 'js/grep-mutex'
Browse files Browse the repository at this point in the history
* js/grep-mutex:
  builtin/grep: simplify lock_and_read_sha1_file()
  builtin/grep: make lock/unlock into static inline functions
  git grep: be careful to use mutexes only when they are initialized
  • Loading branch information
gitster committed Oct 27, 2011
2 parents 82bc9f5 + 7641613 commit 220c045
Showing 1 changed file with 26 additions and 11 deletions.
37 changes: 26 additions & 11 deletions builtin/grep.c
Expand Up @@ -74,13 +74,32 @@ static int all_work_added;
/* This lock protects all the variables above. */
static pthread_mutex_t grep_mutex;

static inline void grep_lock(void)
{
if (use_threads)
pthread_mutex_lock(&grep_mutex);
}

static inline void grep_unlock(void)
{
if (use_threads)
pthread_mutex_unlock(&grep_mutex);
}

/* Used to serialize calls to read_sha1_file. */
static pthread_mutex_t read_sha1_mutex;

#define grep_lock() pthread_mutex_lock(&grep_mutex)
#define grep_unlock() pthread_mutex_unlock(&grep_mutex)
#define read_sha1_lock() pthread_mutex_lock(&read_sha1_mutex)
#define read_sha1_unlock() pthread_mutex_unlock(&read_sha1_mutex)
static inline void read_sha1_lock(void)
{
if (use_threads)
pthread_mutex_lock(&read_sha1_mutex);
}

static inline void read_sha1_unlock(void)
{
if (use_threads)
pthread_mutex_unlock(&read_sha1_mutex);
}

/* Signalled when a new work_item is added to todo. */
static pthread_cond_t cond_add;
Expand Down Expand Up @@ -354,13 +373,9 @@ static void *lock_and_read_sha1_file(const unsigned char *sha1, enum object_type
{
void *data;

if (use_threads) {
read_sha1_lock();
data = read_sha1_file(sha1, type, size);
read_sha1_unlock();
} else {
data = read_sha1_file(sha1, type, size);
}
read_sha1_lock();
data = read_sha1_file(sha1, type, size);
read_sha1_unlock();
return data;
}

Expand Down

0 comments on commit 220c045

Please sign in to comment.