From 0d9de4991eaae9401d64cd2eafa42f6aebde33ae Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Thu, 27 Dec 2018 18:46:53 +0000 Subject: [PATCH] Transport.Sockets.IOQueue -> IThreadPoolWorkItem (#4601) --- .../Kestrel/Transport.Sockets/src/Internal/IOQueue.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs index 892e3927df..e0ae0f4dfd 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/Internal/IOQueue.cs @@ -8,10 +8,8 @@ using System.Threading; namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal { - public class IOQueue : PipeScheduler + public class IOQueue : PipeScheduler, IThreadPoolWorkItem { - private static readonly WaitCallback _doWorkCallback = s => ((IOQueue)s).DoWork(); - private readonly object _workSync = new object(); private readonly ConcurrentQueue _workItems = new ConcurrentQueue(); private bool _doingWork; @@ -30,13 +28,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal { if (!_doingWork) { - System.Threading.ThreadPool.UnsafeQueueUserWorkItem(_doWorkCallback, this); + System.Threading.ThreadPool.UnsafeQueueUserWorkItem(this, preferLocal: false); _doingWork = true; } } } - private void DoWork() + void IThreadPoolWorkItem.Execute() { while (true) {