diff --git a/websocket-sharp/Net/EndPointListener.cs b/websocket-sharp/Net/EndPointListener.cs index 406f4e4c..139c1639 100644 --- a/websocket-sharp/Net/EndPointListener.cs +++ b/websocket-sharp/Net/EndPointListener.cs @@ -553,19 +553,17 @@ namespace WebSocketSharp.Net return; } - List prefs, prefs2; - do { - prefs = _prefixes; + current = _prefixes; - if (!prefs.Contains (prefix)) + if (!current.Contains (prefix)) break; - prefs2 = new List (prefs); - prefs2.Remove (prefix); + future = new List (current); + future.Remove (prefix); } while ( - Interlocked.CompareExchange (ref _prefixes, prefs2, prefs) != prefs + Interlocked.CompareExchange (ref _prefixes, future, current) != current ); leaveIfNoPrefix ();