コード例 #1
0
 private void MarkDirty(ulong txnId, INode node, BrightstarProfiler profiler)
 {
     using (profiler.Step("MarkDirty"))
     {
         if (!node.IsDirty)
         {
             //_nodeCache.Remove(node.PageId);
             _nodeCache.Remove(node);
             if (!_pageStore.IsWriteable(node.PageId))
             {
                 node.PageId = _pageStore.Create();
             }
             node.IsDirty = true;
             _modifiedNodes[node.PageId] = node;
         }
         _pageStore.Write(txnId, node.PageId, node.GetData(), profiler: profiler);
         //Task.Factory.StartNew(() => _pageStore.Write(txnId, node.PageId, node.GetData(), profiler:null)); // Not passing through the profiler because it is not thread-safe
     }
 }