From 4fbefaef9a1632c209b2100e495aa64567118d4b Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Mon, 13 Oct 2014 09:42:47 +0200 Subject: [PATCH] catch an uncaught exception and give git revision in springclean tool --- CMakeLists.txt | 2 +- Tools/springclean.cpp | 33 ++++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79a846278..15d0594c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -286,7 +286,7 @@ if(WITH_TOOLS OR BUILD_TOOLS) endif() add_executable(osrm-check-hsgr Tools/check-hsgr.cpp $ $) target_link_libraries(osrm-check-hsgr ${Boost_LIBRARIES}) - add_executable(osrm-springclean Tools/springclean.cpp $ $) + add_executable(osrm-springclean Tools/springclean.cpp $ $ $) target_link_libraries(osrm-springclean ${Boost_LIBRARIES}) install(TARGETS osrm-cli DESTINATION bin) diff --git a/Tools/springclean.cpp b/Tools/springclean.cpp index c25fd12be..cee3f5549 100644 --- a/Tools/springclean.cpp +++ b/Tools/springclean.cpp @@ -29,6 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "../DataStructures/SharedMemoryFactory.h" #include "../Server/DataStructures/SharedDataType.h" +#include "../Util/GitDescription.h" #include "../Util/simple_logger.hpp" void delete_region(const SharedDataType region) @@ -74,18 +75,28 @@ void springclean() int main() { LogPolicy::GetInstance().Unmute(); - SimpleLogger().Write() << "ATTENTION! BE CAREFUL!"; - SimpleLogger().Write() << "----------------------"; - SimpleLogger().Write() << "This tool may put osrm-routed into an undefined state!"; - SimpleLogger().Write() << "By typing 'Y' you acknowledge that you know what your are doing."; - SimpleLogger().Write() << "\n\nDo you want to purge all shared memory allocated by osrm-datastore? [type 'Y' to confirm]"; - - const auto c = getchar(); - if (c != 'Y') + try { - SimpleLogger().Write() << "aborted."; - return 0; + SimpleLogger().Write() << "starting up engines, " << g_GIT_DESCRIPTION << ", " + << "compiled at " << __DATE__ << ", " __TIME__ << "\n\n"; + SimpleLogger().Write() << "Releasing all locks"; + SimpleLogger().Write() << "ATTENTION! BE CAREFUL!"; + SimpleLogger().Write() << "----------------------"; + SimpleLogger().Write() << "This tool may put osrm-routed into an undefined state!"; + SimpleLogger().Write() << "By typing 'Y' you acknowledge that you know what your are doing."; + SimpleLogger().Write() << "\n\nDo you want to purge all shared memory allocated by osrm-datastore? [type 'Y' to confirm]"; + + const auto c = getchar(); + if (c != 'Y') + { + SimpleLogger().Write() << "aborted."; + return 0; + } + springclean(); + } + catch (const std::exception &e) + { + SimpleLogger().Write(logWARNING) << "[excpetion] " << e.what(); } - springclean(); return 0; }