Beispiel #1
0
            private bool RemoveCore(WaitNode node)
            {
                Debug.Assert(Monitor.IsEntered(this));

                var inList = false;

                if (ReferenceEquals(first, node))
                {
                    first  = node.Next;
                    inList = true;
                }

                if (ReferenceEquals(last, node))
                {
                    last   = node.Previous;
                    inList = true;
                }

                inList |= node.IsNotRoot;
                node.Detach();
                return(inList);
            }