Add finish time in events which are used to compute critical path.

Before that change we used clock to compute finish time in `CriticalPathComputer` for events `ActionMiddlemanEvent`, `CachedActionEvent`, `ActionCompletionEvent`. This time could be different from real finish time because subscribers execute their code serially. So it could be delay between real action completion and event processing.

PiperOrigin-RevId: 540248815
Change-Id: Ie6cb701b135ac3b4cd3edb6be5251e30edbb4823
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java
index 9a1fc76..74301d1 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java
@@ -92,7 +92,7 @@
     enabled = env.getOptions().getOptions(ExecutionOptions.class).enableCriticalPathProfiling;
     statsSummary = env.getOptions().getOptions(ExecutionOptions.class).statsSummary;
     if (enabled) {
-      criticalPathComputer = new CriticalPathComputer(actionKeyContext, BlazeClock.instance());
+      criticalPathComputer = new CriticalPathComputer(actionKeyContext);
       eventBus.register(criticalPathComputer);
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExecutionGraphModule.java b/src/main/java/com/google/devtools/build/lib/runtime/ExecutionGraphModule.java
index 02fc322..658083d 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ExecutionGraphModule.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ExecutionGraphModule.java
@@ -320,8 +320,9 @@
   @Subscribe
   @AllowConcurrentEvents
   public void actionComplete(ActionCompletionEvent event) {
+    // TODO(vanja): handle finish time in ActionCompletionEvent
     if (options.logMissedActions) {
-      actionEvent(event.getAction(), event.getRelativeActionStartTime());
+      actionEvent(event.getAction(), event.getRelativeActionStartTimeNanos());
     }
   }