From 1a6d8f89a798d79f8dc950948c48008c41598c1d Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Wed, 12 Dec 2018 16:35:31 +0000 Subject: [PATCH] Transport.Sockets.IOQueue -> IThreadPoolWorkItem --- .../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 892e3927df57..e0ae0f4dfd2d 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 @@ 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 @@ public override void Schedule(Action action, object state) { 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) {