[Modify] Remove some locks
This commit is contained in:
parent
f41fbd6dcb
commit
080a436ef0
@ -492,28 +492,24 @@ namespace WebSocketSharp.Net
|
|||||||
|
|
||||||
private HttpListenerAsyncResult getAsyncResultFromQueue ()
|
private HttpListenerAsyncResult getAsyncResultFromQueue ()
|
||||||
{
|
{
|
||||||
lock (_waitQueueSync) {
|
if (_waitQueue.Count == 0)
|
||||||
if (_waitQueue.Count == 0)
|
return null;
|
||||||
return null;
|
|
||||||
|
|
||||||
var ares = _waitQueue[0];
|
var ares = _waitQueue[0];
|
||||||
_waitQueue.RemoveAt (0);
|
_waitQueue.RemoveAt (0);
|
||||||
|
|
||||||
return ares;
|
return ares;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private HttpListenerContext getContextFromQueue ()
|
private HttpListenerContext getContextFromQueue ()
|
||||||
{
|
{
|
||||||
lock (_ctxQueueSync) {
|
if (_ctxQueue.Count == 0)
|
||||||
if (_ctxQueue.Count == 0)
|
return null;
|
||||||
return null;
|
|
||||||
|
|
||||||
var ctx = _ctxQueue[0];
|
var ctx = _ctxQueue[0];
|
||||||
_ctxQueue.RemoveAt (0);
|
_ctxQueue.RemoveAt (0);
|
||||||
|
|
||||||
return ctx;
|
return ctx;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -572,13 +568,10 @@ namespace WebSocketSharp.Net
|
|||||||
throw new HttpListenerException (995);
|
throw new HttpListenerException (995);
|
||||||
|
|
||||||
var ctx = getContextFromQueue ();
|
var ctx = getContextFromQueue ();
|
||||||
if (ctx == null) {
|
if (ctx == null)
|
||||||
lock (_waitQueueSync)
|
_waitQueue.Add (asyncResult);
|
||||||
_waitQueue.Add (asyncResult);
|
else
|
||||||
}
|
|
||||||
else {
|
|
||||||
asyncResult.Complete (ctx, true);
|
asyncResult.Complete (ctx, true);
|
||||||
}
|
|
||||||
|
|
||||||
return asyncResult;
|
return asyncResult;
|
||||||
}
|
}
|
||||||
@ -602,13 +595,10 @@ namespace WebSocketSharp.Net
|
|||||||
_ctxRegistry[context] = context;
|
_ctxRegistry[context] = context;
|
||||||
|
|
||||||
var ares = getAsyncResultFromQueue ();
|
var ares = getAsyncResultFromQueue ();
|
||||||
if (ares == null) {
|
if (ares == null)
|
||||||
lock (_ctxQueueSync)
|
_ctxQueue.Add (context);
|
||||||
_ctxQueue.Add (context);
|
else
|
||||||
}
|
|
||||||
else {
|
|
||||||
ares.Complete (context);
|
ares.Complete (context);
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user