|
|
|
@ -74,14 +74,32 @@ static int all_work_added;
@@ -74,14 +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 WHEN_THREADED(x) do { if (use_threads) (x); } while (0) |
|
|
|
|
#define grep_lock() WHEN_THREADED(pthread_mutex_lock(&grep_mutex)) |
|
|
|
|
#define grep_unlock() WHEN_THREADED(pthread_mutex_unlock(&grep_mutex)) |
|
|
|
|
#define read_sha1_lock() WHEN_THREADED(pthread_mutex_lock(&read_sha1_mutex)) |
|
|
|
|
#define read_sha1_unlock() WHEN_THREADED(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; |
|
|
|
|