diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-08-25 16:03:57 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-08-25 16:03:57 -0700 |
| commit | 98ee8a949ad4bfdfa9bf0411b552a23c923eaff7 (patch) | |
| tree | 84ffd2ba562550286e5327ccb8946076942f0934 /toolsrc/src/vcpkg_Checks.cpp | |
| parent | 34bd87c9fcfb1ac9269c75db96852b64ed754d11 (diff) | |
| download | vcpkg-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.cpp | 14 |
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); } |
