{}
~DataSrcClientsMgrBase() {}
void shutdown() {
+ sendCommand(internal::SHUTDOWN, data::ConstElementPtr());
+ builder_thread_.wait();
+ }
+
+private:
+ void sendCommand(internal::CommandID command, data::ConstElementPtr arg) {
{
- using namespace internal;
typename MutexType::Locker locker(queue_mutex_);
- command_queue_.push_back(Command(SHUTDOWN,
- data::ConstElementPtr()));
+ command_queue_.push_back(internal::Command(command, arg));
}
cond_.signal();
- builder_thread_.wait();
}
-private:
std::list<internal::Command> command_queue_;
CondVarType cond_;
MutexType queue_mutex_;