Mercurial > pub > ImplabNet
view Implab/Diagnostics/LogicalOperation.cs @ 209:a867536c68fc v2
Bound promise to CancellationToken
Added new states to ExecutionSate enum.
Added Safe.Guard() method to handle cleanup of the result of the promise
author | cin |
---|---|
date | Wed, 16 Nov 2016 03:06:08 +0300 |
parents | 4c0e5ef99986 |
children |
line wrap: on
line source
using System; namespace Implab.Diagnostics { public class LogicalOperation { public static readonly LogicalOperation EMPTY = new LogicalOperation("__EMPTY__", null); readonly LogicalOperation m_parent; readonly string m_name; readonly int m_level; readonly int m_timestamp; public LogicalOperation() : this(null, null) { } public LogicalOperation(string name, LogicalOperation parent) { m_name = name ?? String.Empty; m_parent = parent; m_level = parent == null ? 0 : parent.Level + 1; m_timestamp = Environment.TickCount; } public int Duration { get { var dt = Environment.TickCount - m_timestamp; return dt < 0 ? int.MaxValue + dt : dt; // handle overflow } } public LogicalOperation Parent { get { return m_parent; } } public int Level { get { return m_level; } } public string Name { get { return m_name; } } } }