Skip to content

Commit 6534d72

Browse files
Mohammad DehghanMohammad Dehghan
authored andcommitted
RuntimeConfig: Make sure there are no duplicate processes
1 parent 195c1ad commit 6534d72

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

SG.CodeCoverage.Recorder/RecordingController/RuntimeConfig.cs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,6 @@ public class RuntimeConfig
1212
{
1313
public List<RunningProcess> Processes { get; set; }
1414

15-
public class RunningProcess
16-
{
17-
public RunningProcess(int iD, int listeningPort)
18-
{
19-
ID = iD;
20-
ListeningPort = listeningPort;
21-
}
22-
23-
public int ID { get; }
24-
public int ListeningPort { get; }
25-
}
26-
2715
public static string GetDefaultFileName()
2816
{
2917
var path = InjectedConstants.RuntimeConfigOutputPath;
@@ -41,7 +29,9 @@ public static void Update(int port)
4129
{
4230
var path = GetDefaultFileName();
4331
var runtimeConfig = Load(path);
44-
runtimeConfig.Processes.Add(new RunningProcess(Process.GetCurrentProcess().Id, port));
32+
var id = Process.GetCurrentProcess().Id;
33+
runtimeConfig.Processes.RemoveAll(p => p.ID == id);
34+
runtimeConfig.Processes.Add(new RunningProcess(id, port));
4535
runtimeConfig.Save(path);
4636
}
4737

@@ -93,5 +83,17 @@ private static void ThrowInvalidFormat()
9383
{
9484
throw new Exception("Invalid file format.");
9585
}
86+
87+
public class RunningProcess
88+
{
89+
public RunningProcess(int iD, int listeningPort)
90+
{
91+
ID = iD;
92+
ListeningPort = listeningPort;
93+
}
94+
95+
public int ID { get; }
96+
public int ListeningPort { get; }
97+
}
9698
}
9799
}

0 commit comments

Comments
 (0)