aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Checks.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_Checks.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_Checks.cpp')
-rw-r--r--toolsrc/src/vcpkg_Checks.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/toolsrc/src/vcpkg_Checks.cpp b/toolsrc/src/vcpkg_Checks.cpp
index 6ae595a54..d8d857daa 100644
--- a/toolsrc/src/vcpkg_Checks.cpp
+++ b/toolsrc/src/vcpkg_Checks.cpp
@@ -10,17 +10,23 @@ namespace vcpkg::Checks
{
[[noreturn]] static void cleanup_and_exit(const int exit_code)
{
- auto elapsed_us = GlobalState::timer.microseconds();
- Metrics::track_metric("elapsed_us", elapsed_us);
+ auto elapsed_us = GlobalState::timer.lock()->microseconds();
+
+ auto metrics = Metrics::g_metrics.lock();
+ metrics->track_metric("elapsed_us", elapsed_us);
GlobalState::debugging = false;
- Metrics::flush();
+ metrics->flush();
::exit(exit_code);
}
static BOOL CtrlHandler(DWORD fdwCtrlType)
{
- Metrics::track_metric("SignalCaptured", fdwCtrlType);
+ {
+ auto locked_metrics = Metrics::g_metrics.lock();
+ locked_metrics->track_property("CtrlHandler", std::to_string(fdwCtrlType));
+ locked_metrics->track_property("error", "CtrlHandler was fired.");
+ }
cleanup_and_exit(EXIT_FAILURE);
}