Skip to content

Commit 883d1f7

Browse files
authored
Merge pull request #102 from MaartenX/nunit3-domainunload
Added DomainUnloaded event.
2 parents 212b1f4 + 63e5f07 commit 883d1f7

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/coverlet.core/CoverageTracker.cs

+12-6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ static CoverageTracker()
1818
_markers = new Dictionary<string, List<string>>();
1919
_markerFileCount = new Dictionary<string, int>();
2020
AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
21+
AppDomain.CurrentDomain.DomainUnload += new EventHandler(CurrentDomain_ProcessExit);
2122
}
2223

2324
[ExcludeFromCoverage]
@@ -48,17 +49,22 @@ public static void MarkExecuted(string path, string marker)
4849
[ExcludeFromCoverage]
4950
public static void CurrentDomain_ProcessExit(object sender, EventArgs e)
5051
{
51-
foreach (var kvp in _markers)
52+
lock (_markers)
5253
{
53-
using (var fs = new FileStream($"{kvp.Key}_compressed_{_markerFileCount[kvp.Key]}", FileMode.OpenOrCreate))
54-
using (var gz = new GZipStream(fs, CompressionMode.Compress))
55-
using (var sw = new StreamWriter(gz))
54+
foreach (var kvp in _markers)
5655
{
57-
foreach(var line in kvp.Value)
56+
using (var fs = new FileStream($"{kvp.Key}_compressed_{_markerFileCount[kvp.Key]}", FileMode.OpenOrCreate))
57+
using (var gz = new GZipStream(fs, CompressionMode.Compress))
58+
using (var sw = new StreamWriter(gz))
5859
{
59-
sw.WriteLine(line);
60+
foreach(var line in kvp.Value)
61+
{
62+
sw.WriteLine(line);
63+
}
6064
}
6165
}
66+
67+
_markers.Clear();
6268
}
6369
}
6470
}

0 commit comments

Comments
 (0)