#undef dout_prefix
#define dout_prefix *_dout << "stack "
-void NetworkStack::add_thread(unsigned i, std::function<void ()> &thread)
+std::function<void ()> NetworkStack::add_thread(unsigned i)
{
Worker *w = workers[i];
- thread = std::move(
- [this, w]() {
- const uint64_t EventMaxWaitUs = 30000000;
- w->center.set_owner();
+ return [this, w]() {
+ const uint64_t EventMaxWaitUs = 30000000;
+ w->center.set_owner();
ldout(cct, 10) << __func__ << " starting" << dendl;
w->initialize();
w->init_done();
}
w->reset();
w->destroy();
- }
- );
+ };
}
std::shared_ptr<NetworkStack> NetworkStack::create(CephContext *c, const string &t)
for (unsigned i = 0; i < num_workers; ++i) {
if (workers[i]->is_init())
continue;
- std::function<void ()> thread;
- add_thread(i, thread);
+ std::function<void ()> thread = add_thread(i);
spawn_worker(i, std::move(thread));
}
started = true;