public CacheList(uint size) { list = new LinkedList <CacheNode <T, V> >(); FirstNode = CacheNode <T, V> .CreateLLNode(default(T), default(V)); list.AddFirst(FirstNode); LastNode = CacheNode <T, V> .CreateLLNode(default(T), default(V)); list.AddLast(LastNode); }
private Func <TKey, LinkedListNode <CacheNode <TKey, TValue> > > createNewLockedNode(TValue value) { return((key) => { var newNode = CacheNode <TKey, TValue> .CreateLLNode(key, value); do { } while (!newNode.Value.TryLock()); return newNode; }); }