From e56ceb24c77aeaef5a34131b235487e5566c0a28 Mon Sep 17 00:00:00 2001 From: Robert Holt Date: Mon, 17 Sep 2018 16:04:48 -0700 Subject: [PATCH 1/3] Fix NRE when trying to start the stopwatch --- src/PowerShellEditorServices/Utility/ExecutionTimer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs index 805f7d05f..afc765eea 100644 --- a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs +++ b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs @@ -50,7 +50,7 @@ public static ExecutionTimer Start( [CallerLineNumber] int callerLineNumber = -1) { var timer = new ExecutionTimer(logger, message, callerMemberName, callerFilePath, callerLineNumber); - t_stopwatch.Start(); + Stopwatch.Start(); return timer; } From 908a42cacfe8075d62dc79b61d4a546eff34f076 Mon Sep 17 00:00:00 2001 From: Robert Holt Date: Tue, 18 Sep 2018 10:28:45 -0700 Subject: [PATCH 2/3] Make Stopwatch property threadstatic --- src/PowerShellEditorServices/Utility/ExecutionTimer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs index afc765eea..b78e812a7 100644 --- a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs +++ b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs @@ -93,6 +93,7 @@ public void Dispose() callerLineNumber: _callerLineNumber); } - private Stopwatch Stopwatch => t_stopwatch ?? (t_stopwatch = new Stopwatch()); + [ThreadStatic] + private static Stopwatch Stopwatch => t_stopwatch ?? (t_stopwatch = new Stopwatch()); } } From 824fbf648700fdb55029ab517b9170bcfd0bf351 Mon Sep 17 00:00:00 2001 From: Robert Holt Date: Tue, 18 Sep 2018 11:24:55 -0700 Subject: [PATCH 3/3] Remove ThreadStatic from property --- src/PowerShellEditorServices/Utility/ExecutionTimer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs index b78e812a7..e82d5b55c 100644 --- a/src/PowerShellEditorServices/Utility/ExecutionTimer.cs +++ b/src/PowerShellEditorServices/Utility/ExecutionTimer.cs @@ -93,7 +93,6 @@ public void Dispose() callerLineNumber: _callerLineNumber); } - [ThreadStatic] private static Stopwatch Stopwatch => t_stopwatch ?? (t_stopwatch = new Stopwatch()); } }