Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2012-06-09 22:54:25 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:39:33 +0300
commit923df9cc2aaeff8c4e00c772ac0e0f49c8ca1e8e (patch)
tree79ef81abf564fba54c3580cda93bc6c8ab41f877 /generator/feature_generator.cpp
parent8e317bafbf5efcd3393b99f82b492b4396298e24 (diff)
[generator] Revert changes with multithreading generator. There is some bug in logic.
Diffstat (limited to 'generator/feature_generator.cpp')
-rw-r--r--generator/feature_generator.cpp39
1 files changed, 8 insertions, 31 deletions
diff --git a/generator/feature_generator.cpp b/generator/feature_generator.cpp
index 3bed8605c7..74c9f51792 100644
--- a/generator/feature_generator.cpp
+++ b/generator/feature_generator.cpp
@@ -6,7 +6,6 @@
#include "generate_info.hpp"
#include "coastlines_generator.hpp"
#include "world_map_generator.hpp"
-#include "multiproducer_oneconsumer.hpp"
#include "../defines.hpp"
@@ -334,32 +333,6 @@ public:
}
}
-private:
- class CoastFeatureTask : public MultiProducerOneConsumer::ITask
- {
- MainFeaturesEmitter & m_parent;
- size_t m_ind;
-
- public:
- CoastFeatureTask(MainFeaturesEmitter & parent, size_t ind)
- : m_parent(parent), m_ind(ind) {}
-
- virtual void RunBase()
- {
- vector<FeatureBuilder1> vecFb;
- m_parent.m_coasts->GetFeatures(m_ind, vecFb);
-
- for (size_t i = 0; i< vecFb.size(); ++i)
- Emit(&vecFb[i]);
- }
-
- virtual void EmitBase(void * p)
- {
- (*m_parent.m_coastsHolder)(*reinterpret_cast<FeatureBuilder1 *>(p));
- }
- };
-
-public:
void Finish()
{
if (m_world)
@@ -370,12 +343,16 @@ public:
m_coasts->Finish();
size_t const count = m_coasts->GetCellsCount();
- LOG(LINFO, ("Generating coastline features for ", count, " cells."));
+ LOG(LINFO, ("Generating coastline polygons", count));
- MultiProducerOneConsumer runner(8);
for (size_t i = 0; i < count; ++i)
- runner.RunTask(new CoastFeatureTask(*this, i));
- runner.Finish();
+ {
+ vector<FeatureBuilder1> vecFb;
+ m_coasts->GetFeatures(i, vecFb);
+
+ for (size_t j = 0; j < vecFb.size(); ++j)
+ (*m_coastsHolder)(vecFb[j]);
+ }
}
else if (m_coastsHolder)
{