[Modify] Use the Queue<T> class instead

This commit is contained in:
sta 2021-04-12 16:14:13 +09:00
parent b0361e1867
commit c26470ff21

View File

@ -80,7 +80,7 @@ namespace WebSocketSharp.Net
private bool _reuseAddress; private bool _reuseAddress;
private ServerSslConfiguration _sslConfig; private ServerSslConfiguration _sslConfig;
private Func<IIdentity, NetworkCredential> _userCredFinder; private Func<IIdentity, NetworkCredential> _userCredFinder;
private List<HttpListenerAsyncResult> _waitQueue; private Queue<HttpListenerAsyncResult> _waitQueue;
private object _waitQueueSync; private object _waitQueueSync;
#endregion #endregion
@ -116,7 +116,7 @@ namespace WebSocketSharp.Net
_prefixes = new HttpListenerPrefixCollection (this); _prefixes = new HttpListenerPrefixCollection (this);
_waitQueue = new List<HttpListenerAsyncResult> (); _waitQueue = new Queue<HttpListenerAsyncResult> ();
_waitQueueSync = ((ICollection) _waitQueue).SyncRoot; _waitQueueSync = ((ICollection) _waitQueue).SyncRoot;
} }
@ -516,14 +516,7 @@ namespace WebSocketSharp.Net
private HttpListenerAsyncResult getAsyncResultFromQueue () private HttpListenerAsyncResult getAsyncResultFromQueue ()
{ {
if (_waitQueue.Count == 0) return _waitQueue.Count > 0 ? _waitQueue.Dequeue () : null;
return null;
var ret = _waitQueue[0];
_waitQueue.RemoveAt (0);
return ret;
} }
private HttpListenerContext getContextFromQueue () private HttpListenerContext getContextFromQueue ()
@ -561,7 +554,7 @@ namespace WebSocketSharp.Net
var ctx = getContextFromQueue (); var ctx = getContextFromQueue ();
if (ctx == null) if (ctx == null)
_waitQueue.Add (asyncResult); _waitQueue.Enqueue (asyncResult);
else else
asyncResult.Complete (ctx, true); asyncResult.Complete (ctx, true);