internal void RecordBlockingExtension(object extension) { if (extension == null) { return; } string extensionName; switch (extension) { case IAsyncCompletionSource source: extensionName = CompletionTelemetryHost.GetSourceName(source); break; case IAsyncCompletionItemManager itemManager: extensionName = CompletionTelemetryHost.GetItemManagerName(itemManager); break; case IAsyncCompletionCommitManager commitManager: extensionName = CompletionTelemetryHost.GetCommitManagerName(commitManager); break; default: extensionName = extension.GetType().ToString(); break; } if (!BlockingExtensionCounter.ContainsKey(extensionName)) { BlockingExtensionCounter[extensionName] = 0; } BlockingExtensionCounter[extensionName]++; }
internal void RecordCommitted(long duration, bool noChanges, IAsyncCompletionCommitManager manager) { CommitManagerName = CompletionTelemetryHost.GetCommitManagerName(manager); CommitDuration = duration; NoChanges = noChanges; }
internal void RecordObtainingCommitManagerData(IAsyncCompletionCommitManager manager, long elapsedMilliseconds) { var name = CompletionTelemetryHost.GetCommitManagerName(manager); CommitManagerSetupDuration[name] = elapsedMilliseconds; }