protected internal override void Starting(Method m)
        {
            Debug.Assert(m != null, "Parameter null.");

            string name = GetGroupInternal(m);

            if (blockList.ContainsValue(name)) {
                throw new ExecutionBlockedException();
            }

            blockList.Add(Thread.CurrentThread.ManagedThreadId, name);
        }
 private string GetGroupInternal(Method m)
 {
     return group != null ? group : m.Name;
 }
        protected internal override void Finished(Method m)
        {
            Debug.Assert(m != null, "Parameter null.");

            blockList.Remove(Thread.CurrentThread.ManagedThreadId);
        }