mirror of
https://github.com/git/git.git
synced 2024-11-02 07:17:58 +01:00
Merge branch 'jc/maint-grep-one-thread-mutex-fix' into maint
* jc/maint-grep-one-thread-mutex-fix: Fix use of mutex in threaded grep
This commit is contained in:
commit
354d9f861b
1 changed files with 16 additions and 9 deletions
|
@ -408,15 +408,25 @@ static int pathspec_matches(const char **paths, const char *name, int max_depth)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void *lock_and_read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size)
|
||||
{
|
||||
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);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
static void *load_sha1(const unsigned char *sha1, unsigned long *size,
|
||||
const char *name)
|
||||
{
|
||||
enum object_type type;
|
||||
char *data;
|
||||
|
||||
read_sha1_lock();
|
||||
data = read_sha1_file(sha1, &type, size);
|
||||
read_sha1_unlock();
|
||||
void *data = lock_and_read_sha1_file(sha1, &type, size);
|
||||
|
||||
if (!data)
|
||||
error("'%s': unable to read %s", name, sha1_to_hex(sha1));
|
||||
|
@ -605,10 +615,7 @@ static int grep_tree(struct grep_opt *opt, const char **paths,
|
|||
void *data;
|
||||
unsigned long size;
|
||||
|
||||
read_sha1_lock();
|
||||
data = read_sha1_file(entry.sha1, &type, &size);
|
||||
read_sha1_unlock();
|
||||
|
||||
data = lock_and_read_sha1_file(entry.sha1, &type, &size);
|
||||
if (!data)
|
||||
die("unable to read tree (%s)",
|
||||
sha1_to_hex(entry.sha1));
|
||||
|
|
Loading…
Reference in a new issue