Skip to content

Commit bb03a52

Browse files
committed
Fix problem with dangling reader/writer threads blocked on sockets that won't let the process to exit
1 parent 279c90c commit bb03a52

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/MsBuildPipeLogger.Logger/PipeWriter.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ protected PipeWriter(PipeStream pipeStream)
2828
_binaryWriter = new BinaryWriter(_memoryStream);
2929
_argsWriter = new BuildEventArgsWriter(_binaryWriter);
3030

31-
new Thread(() =>
31+
Thread writerThread = new Thread(() =>
3232
{
3333
BuildEventArgs eventArgs;
3434
while ((eventArgs = TakeEventArgs()) != null)
@@ -46,7 +46,11 @@ protected PipeWriter(PipeStream pipeStream)
4646
_pipeStream.Flush();
4747
}
4848
_doneProcessing.Set();
49-
}).Start();
49+
})
50+
{
51+
IsBackground = true,
52+
};
53+
writerThread.Start();
5054
}
5155

5256
private BuildEventArgs TakeEventArgs()

src/MsBuildPipeLogger.Server/PipeLoggerServer.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ protected PipeLoggerServer(TPipeStream pipeStream, CancellationToken cancellatio
4646
_buildEventArgsReader = new BuildEventArgsReaderProxy(_binaryReader);
4747
CancellationToken = cancellationToken;
4848

49-
new Thread(() =>
49+
Thread readerThread = new Thread(() =>
5050
{
5151
try
5252
{
@@ -68,7 +68,12 @@ protected PipeLoggerServer(TPipeStream pipeStream, CancellationToken cancellatio
6868
Buffer.Write(new byte[1] { 0 }, 0, 1);
6969

7070
Buffer.CompleteAdding();
71-
}).Start();
71+
})
72+
{
73+
IsBackground = true
74+
};
75+
76+
readerThread.Start();
7277
}
7378

7479
protected abstract void Connect();

0 commit comments

Comments
 (0)