Skip to content

Commit 7cb2d7e

Browse files
committed
Merge pull request libgit2#1079 from whoisj/fix-coverity-concurrency-issues
Fixes a trio of concurrency issues found by Coverity
2 parents 2a28329 + 802aa50 commit 7cb2d7e

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

LibGit2Sharp/Core/Handles/SafeHandleBase.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,15 @@ public static void Clear()
6666
/// </summary>
6767
public static IEnumerable<string> TypeNames
6868
{
69-
get { return _typeNames.ToArray(); }
69+
get
70+
{
71+
string[] result = null;
72+
lock (_lockpad)
73+
{
74+
result = _typeNames.ToArray();
75+
}
76+
return result;
77+
}
7078
}
7179
}
7280
}

LibGit2Sharp/Core/LazyGroup.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,19 @@ public ILazy<TResult> AddLazy<TResult>(Func<T, TResult> func)
2424

2525
public void Evaluate()
2626
{
27-
if (evaluated)
28-
return;
29-
3027
lock (@lock)
3128
{
3229
if (evaluated)
30+
{
3331
return;
32+
}
3433

3534
EvaluateInternal(input =>
3635
{
3736
foreach (var e in evaluators)
37+
{
3838
e.Evaluate(input);
39+
}
3940
});
4041
evaluated = true;
4142
}

0 commit comments

Comments
 (0)