aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Build.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-08-25 16:03:57 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-08-25 16:03:57 -0700
commit98ee8a949ad4bfdfa9bf0411b552a23c923eaff7 (patch)
tree84ffd2ba562550286e5327ccb8946076942f0934 /toolsrc/src/vcpkg_Build.cpp
parent34bd87c9fcfb1ac9269c75db96852b64ed754d11 (diff)
downloadvcpkg-98ee8a949ad4bfdfa9bf0411b552a23c923eaff7.tar.gz
vcpkg-98ee8a949ad4bfdfa9bf0411b552a23c923eaff7.zip
[vcpkg] Trap Ctrl-C, enable thread safety for global data structures
Diffstat (limited to 'toolsrc/src/vcpkg_Build.cpp')
-rw-r--r--toolsrc/src/vcpkg_Build.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/toolsrc/src/vcpkg_Build.cpp b/toolsrc/src/vcpkg_Build.cpp
index d4632afaa..89f95ee9b 100644
--- a/toolsrc/src/vcpkg_Build.cpp
+++ b/toolsrc/src/vcpkg_Build.cpp
@@ -193,13 +193,16 @@ namespace vcpkg::Build
int return_code = System::cmd_execute_clean(command);
auto buildtimeus = timer.microseconds();
const auto spec_string = spec.to_string();
- Metrics::track_metric("buildtimeus-" + spec_string, buildtimeus);
- if (return_code != 0)
{
- Metrics::track_property("error", "build failed");
- Metrics::track_property("build_error", spec_string);
- return {BuildResult::BUILD_FAILED, {}};
+ auto locked_metrics = Metrics::g_metrics.lock();
+ locked_metrics->track_metric("buildtimeus-" + spec_string, buildtimeus);
+ if (return_code != 0)
+ {
+ locked_metrics->track_property("error", "build failed");
+ locked_metrics->track_property("build_error", spec_string);
+ return {BuildResult::BUILD_FAILED, {}};
+ }
}
auto build_info = read_build_info(paths.get_filesystem(), paths.build_info_file_path(spec));