void operator()() { osmium::thread::set_thread_name("_osmium_write"); try { while (true) { std::string data = m_queue.pop(); if (at_end_of_data(data)) { break; } m_compressor->write(data); } m_compressor->close(); m_promise.set_value(true); } catch (...) { m_promise.set_exception(std::current_exception()); m_queue.drain(); } }
std::string get_input() { return m_input_queue.pop(); }