From: Junio C Hamano Date: Wed, 26 Oct 2011 20:04:17 GMT Subject: Re: [PATCH] git grep: be careful to use mutices only when they are initialized Message-ID: <7vr51z1pvi.fsf@alter.siamese.dyndns.org> In-Reply-To: <7v39ef34in.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > The remainder of this message are hints and random thoughts on potential > follow-up patches that may want to build on top of this patch for further > clean-ups (not specifically meant for Dscho but for other people on both > mailing lists). > ... > - Wouldn't the result be more readable to make these into static inline > functions? That would look like this. -- >8 -- Subject: [PATCH] builtin/grep: make lock/unlock into static inline Signed-off-by: Junio C Hamano --- builtin/grep.c | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/builtin/grep.c b/builtin/grep.c index 88b0c80..3ddfae4 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -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; -- 1.7.7.1.504.gcc718