1111#include < boost/algorithm/string/predicate.hpp>
1212#include < vector>
1313
14- output_multi_t ::output_multi_t (std::string const &name,
15- std::shared_ptr<geometry_processor> processor_,
16- export_list const &export_list ,
17- std::shared_ptr< middle_query_t > const &mid ,
18- options_t const &options )
14+ output_multi_t ::output_multi_t (
15+ std::string const &name, std::shared_ptr<geometry_processor> processor_,
16+ export_list const & export_list, std::shared_ptr< middle_query_t > const &mid ,
17+ options_t const &options ,
18+ std::shared_ptr< db_copy_thread_t > const ©_thread )
1919: output_t (mid, options),
2020 m_tagtransform (tagtransform_t ::make_tagtransform(&m_options, export_list)),
2121 m_processor(processor_), m_proj(m_options.projection),
@@ -27,7 +27,7 @@ output_multi_t::output_multi_t(std::string const &name,
2727 m_table(new table_t (name, m_processor->column_type (),
2828 export_list.normal_columns(m_osm_type),
2929 m_options.hstore_columns, m_processor->srid(),
30- m_options.append, m_options.hstore_mode)),
30+ m_options.append, m_options.hstore_mode, copy_thread )),
3131 ways_done_tracker(new id_tracker()),
3232 m_expire(m_options.expire_tiles_zoom, m_options.expire_tiles_max_bbox,
3333 m_options.projection),
@@ -37,12 +37,14 @@ output_multi_t::output_multi_t(std::string const &name,
3737{
3838}
3939
40- output_multi_t ::output_multi_t (output_multi_t const *other,
41- std::shared_ptr<middle_query_t > const &mid)
40+ output_multi_t ::output_multi_t (
41+ output_multi_t const *other, std::shared_ptr<middle_query_t > const &mid,
42+ std::shared_ptr<db_copy_thread_t > const ©_thread)
4243: output_t(mid, other->m_options),
4344 m_tagtransform(other->m_tagtransform->clone ()),
4445 m_processor(other->m_processor), m_proj(other->m_proj),
45- m_osm_type(other->m_osm_type), m_table(new table_t (*other->m_table)),
46+ m_osm_type(other->m_osm_type),
47+ m_table(new table_t (*other->m_table, copy_thread)),
4648 // NOTE: we need to know which ways were used by relations so each thread
4749 // must have a copy of the original marked done ways, its read only so its
4850 // ok
@@ -57,10 +59,12 @@ output_multi_t::output_multi_t(output_multi_t const *other,
5759
5860output_multi_t ::~output_multi_t () = default ;
5961
60- std::shared_ptr<output_t >
61- output_multi_t ::clone(std::shared_ptr<middle_query_t > const &mid) const
62+ std::shared_ptr<output_t > output_multi_t::clone (
63+ std::shared_ptr<middle_query_t > const &mid,
64+ std::shared_ptr<db_copy_thread_t > const ©_thread) const
6265{
63- return std::shared_ptr<output_t >(new output_multi_t (this , mid));
66+ return std::shared_ptr<output_t >(
67+ new output_multi_t (this , mid, copy_thread));
6468}
6569
6670int output_multi_t::start () {
0 commit comments