Commit cacea1bc authored by neverlord's avatar neverlord

maintenance

parent 152aa067
...@@ -48,7 +48,6 @@ namespace cppa { namespace detail { ...@@ -48,7 +48,6 @@ namespace cppa { namespace detail {
namespace { namespace {
typedef unique_lock<mutex> guard_type; typedef unique_lock<mutex> guard_type;
typedef std::unique_ptr<thread_pool_scheduler::worker> worker_ptr;
typedef intrusive::single_reader_queue<thread_pool_scheduler::worker> worker_queue; typedef intrusive::single_reader_queue<thread_pool_scheduler::worker> worker_queue;
} // namespace <anonmyous> } // namespace <anonmyous>
...@@ -147,6 +146,7 @@ struct thread_pool_scheduler::worker ...@@ -147,6 +146,7 @@ struct thread_pool_scheduler::worker
job->pending_actor().reset(); job->pending_actor().reset();
} }
if (!job->deref()) delete job; if (!job->deref()) delete job;
CPPA_MEMORY_BARRIER();
dec_actor_count(); dec_actor_count();
job = nullptr; job = nullptr;
} }
...@@ -207,13 +207,13 @@ void thread_pool_scheduler::worker_loop(thread_pool_scheduler::worker* w) ...@@ -207,13 +207,13 @@ void thread_pool_scheduler::worker_loop(thread_pool_scheduler::worker* w)
void thread_pool_scheduler::supervisor_loop(job_queue* jqueue, void thread_pool_scheduler::supervisor_loop(job_queue* jqueue,
scheduled_actor* dummy) scheduled_actor* dummy)
{ {
typedef std::unique_ptr<thread_pool_scheduler::worker> worker_ptr;
std::vector<worker_ptr> workers; std::vector<worker_ptr> workers;
size_t num_workers = std::max<size_t>(thread::hardware_concurrency() * 2, 8); size_t num_workers = std::max<size_t>(thread::hardware_concurrency() * 2, 8);
for (size_t i = 0; i < num_workers; ++i) for (size_t i = 0; i < num_workers; ++i)
{ {
worker_ptr wptr(new worker(jqueue, dummy)); workers.emplace_back(new worker(jqueue, dummy));
wptr->start(); workers.back()->start();
workers.push_back(std::move(wptr));
} }
// wait for workers // wait for workers
for (auto& w : workers) for (auto& w : workers)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment