public static IDisposable SetFlag(this object source, string name) { CheckArgs(source, name); FlagCount flagCount = _flags.GetOrAdd(name, n => new FlagCount(n)); return(new Flag(flagCount, source)); }
internal Flag(FlagCount flagCount, object source) { _flagCount = flagCount; _source = source; _flagCount.Increment(_source); }