int Comm::wait_any_for(const std::vector<CommPtr>* comms, double timeout)
{
- std::unique_ptr<kernel::activity::CommImpl* []> rcomms(new kernel::activity::CommImpl*[comms->size()]);
- std::transform(begin(*comms), end(*comms), rcomms.get(),
+ std::vector<kernel::activity::CommImpl*> rcomms(comms->size());
+ std::transform(begin(*comms), end(*comms), begin(rcomms),
[](const CommPtr& comm) { return static_cast<kernel::activity::CommImpl*>(comm->pimpl_.get()); });
- int changed_pos = simcall_comm_waitany(rcomms.get(), comms->size(), timeout);
+ int changed_pos = simcall_comm_waitany(rcomms.data(), rcomms.size(), timeout);
if (changed_pos != -1)
comms->at(changed_pos)->release_dependencies();
return changed_pos;
int Comm::test_any(const std::vector<CommPtr>* comms)
{
- std::unique_ptr<kernel::activity::CommImpl* []> rcomms(new kernel::activity::CommImpl*[comms->size()]);
- std::transform(begin(*comms), end(*comms), rcomms.get(),
+ std::vector<kernel::activity::CommImpl*> rcomms(comms->size());
+ std::transform(begin(*comms), end(*comms), begin(rcomms),
[](const CommPtr& comm) { return static_cast<kernel::activity::CommImpl*>(comm->pimpl_.get()); });
- int changed_pos = simcall_comm_testany(rcomms.get(), comms->size());
+ int changed_pos = simcall_comm_testany(rcomms.data(), rcomms.size());
if (changed_pos != -1)
comms->at(changed_pos)->release_dependencies();
return changed_pos;
kernel::actor::ActorImplPtr sender = nullptr;
if (pimpl_)
sender = boost::static_pointer_cast<kernel::activity::CommImpl>(pimpl_)->src_actor_;
- return sender ? sender->ciface() : nullptr;
+ return sender ? sender->get_ciface() : nullptr;
}
} // namespace s4u