about summary refs log tree commit diff
path: root/src/libstore/build.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2016-12-07T15·09+0100
committerEelco Dolstra <edolstra@gmail.com>2016-12-07T15·09+0100
commitb07060688a298abe765bca4258de4c675b24a364 (patch)
tree7f44131fa022886fb78576443eba0a3b79d14b60 /src/libstore/build.cc
parentdadfddfa7cb5d523969bffd906b74099d6a88387 (diff)
Keep track of the exact build start/stop times
Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r--src/libstore/build.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 2bc167fee5ca..8442f1f613b7 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1347,6 +1347,7 @@ void DerivationGoal::tryToBuild()
             case rpAccept:
                 /* Yes, it has started doing so.  Wait until we get
                    EOF from the hook. */
+                result.startTime = time(0); // inexact
                 state = &DerivationGoal::buildDone;
                 return;
             case rpPostpone:
@@ -1424,6 +1425,7 @@ void DerivationGoal::buildDone()
     debug(format("builder process for ‘%1%’ finished") % drvPath);
 
     result.timesBuilt++;
+    result.stopTime = time(0);
 
     /* So the child is gone now. */
     worker.childTerminated(this);
@@ -2108,6 +2110,8 @@ void DerivationGoal::startBuilder()
     /* Create a pipe to get the output of the builder. */
     builderOut.create();
 
+    result.startTime = time(0);
+
     /* Fork a child to build the package. */
 #if __linux__
     if (useChroot) {