Commit d4a5090a authored by Lingxi-Li's avatar Lingxi-Li

Improve the use of random distributions

parent 3655ba9e
...@@ -78,13 +78,14 @@ actor_pool::policy actor_pool::random() { ...@@ -78,13 +78,14 @@ actor_pool::policy actor_pool::random() {
} }
void operator()(actor_system&, uplock& guard, const actor_vec& vec, void operator()(actor_system&, uplock& guard, const actor_vec& vec,
mailbox_element_ptr& ptr, execution_unit* host) { mailbox_element_ptr& ptr, execution_unit* host) {
std::uniform_int_distribution<size_t> dis(0, vec.size() - 1);
upgrade_to_unique_lock<detail::shared_spinlock> unique_guard{guard}; upgrade_to_unique_lock<detail::shared_spinlock> unique_guard{guard};
actor selected = vec[dis(rd_)]; auto selected =
vec[dis_(rd_, decltype(dis_)::param_type(0, vec.size() - 1))];
unique_guard.unlock(); unique_guard.unlock();
selected->enqueue(std::move(ptr), host); selected->enqueue(std::move(ptr), host);
} }
std::random_device rd_; std::random_device rd_;
std::uniform_int_distribution<size_t> dis_;
}; };
return impl{}; return impl{};
} }
......
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