diff options
author | Thomas Rast <trast@student.ethz.ch> | 2011-12-12 22:16:07 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-16 15:47:10 -0800 |
commit | 0579f91dd74a0902e52d1e6e839cc31b99f12cfc (patch) | |
tree | 89caa085455a31a6e3b46434a258d630fb8c7154 /grep.h | |
parent | b8ffedca6f9e1043956ba611ae52bea449779456 (diff) | |
download | git-0579f91dd74a0902e52d1e6e839cc31b99f12cfc.tar.gz |
grep: enable threading with -p and -W using lazy attribute lookup
Lazily load the userdiff attributes in match_funcname(). Use a
separate mutex around this loading to protect the (not thread-safe)
attributes machinery. This lets us re-enable threading with -p and
-W while reducing the overhead caused by looking up attributes.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'grep.h')
-rw-r--r-- | grep.h | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -8,6 +8,7 @@ typedef int pcre; typedef int pcre_extra; #endif #include "kwset.h" +#include "thread-utils.h" enum grep_pat_token { GREP_PATTERN, @@ -115,6 +116,7 @@ struct grep_opt { int show_hunk_mark; int file_break; int heading; + int use_threads; void *priv; void (*output)(struct grep_opt *opt, const void *data, size_t size); @@ -131,4 +133,12 @@ extern int grep_buffer(struct grep_opt *opt, const char *name, char *buf, unsign extern struct grep_opt *grep_opt_dup(const struct grep_opt *opt); extern int grep_threads_ok(const struct grep_opt *opt); +#ifndef NO_PTHREADS +/* + * Mutex used around access to the attributes machinery if + * opt->use_threads. Must be initialized/destroyed by callers! + */ +extern pthread_mutex_t grep_attr_mutex; +#endif + #endif |