From 43a4e8db12a2da422d9ea9422079e6c1eaaa2262 Mon Sep 17 00:00:00 2001 From: Mateusz Loskot Date: Mon, 28 Aug 2017 22:29:27 +0200 Subject: [PATCH] Use user-provided osmium::thread::Pool instance Advantages: * Allows to use Pool configured with user-preferred number of threads. * If libosmium used in a shared library, this helps to prevent potential deadlock during Pool shutdown at (after) shared library unloading. See https://github.com/osmcode/libosmium/pull/214 Requires libosmium 2.13.0 --- src/extractor/extractor.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/extractor/extractor.cpp b/src/extractor/extractor.cpp index 8e71af86d..a850bd144 100644 --- a/src/extractor/extractor.cpp +++ b/src/extractor/extractor.cpp @@ -40,6 +40,7 @@ #include #include +#include #include #include @@ -286,9 +287,11 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment, util::Log() << "Threads: " << number_of_threads; const osmium::io::File input_file(config.input_path.string()); - + osmium::thread::Pool pool(number_of_threads); osmium::io::Reader reader( - input_file, (config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)); + input_file, + pool, + (config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)); const osmium::io::Header header = reader.header();