public lfdllOperationExecutor(
     ExecutionSequenceParameters eParams,
     ILockFreeDoublyLinkedList <ListItemData> list, Counter counter,
     int name)
 {
     this.eParams = eParams;
     this.counter = counter;
     Name         = name;
     state        = new LfdllExecutionState(list);
     state.AddToKnownNodes(list.Head);
     state.AddingToKnownNodes(list.Tail);
 }
        public override ILockFreeDoublyLinkedListNode <ListItemData> RunOnLfdll(
            LfdllExecutionState state)
        {
            ILockFreeDoublyLinkedListNode <ListItemData> node
                = state.List.PopRightNode();

            if (node != null)
            {
                state.AddToKnownNodes(node);
            }
            return(node);
        }