Comm::~Comm()
{
- if (state_ == State::STARTED && not detached_ && (pimpl_ == nullptr || pimpl_->state_ == SIMIX_RUNNING)) {
+ if (state_ == State::STARTED && not detached_ &&
+ (pimpl_ == nullptr || pimpl_->state_ == kernel::activity::State::RUNNING)) {
XBT_INFO("Comm %p freed before its completion. Detached: %d, State: %d", this, detached_, (int)state_);
if (pimpl_ != nullptr)
- XBT_INFO("pimpl_->state: %d", pimpl_->state_);
+ XBT_INFO("pimpl_->state: %d", static_cast<int>(pimpl_->state_));
else
XBT_INFO("pimpl_ is null");
xbt_backtrace_display_current();
}
}
-int Comm::wait_any_for(std::vector<CommPtr>* comms, double timeout)
+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(),
return simcall_comm_waitany(rcomms.get(), comms->size(), timeout);
}
-void Comm::wait_all(std::vector<CommPtr>* comms)
+void Comm::wait_all(const std::vector<CommPtr>* comms)
{
// TODO: this should be a simcall or something
// TODO: we are missing a version with timeout
}
return this;
}
-int Comm::test_any(std::vector<CommPtr>* comms)
+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(),
return sender_ ? sender_->ciface() : nullptr;
}
-void intrusive_ptr_release(simgrid::s4u::Comm* c)
-{
- if (c->refcount_.fetch_sub(1, std::memory_order_release) == 1) {
- std::atomic_thread_fence(std::memory_order_acquire);
- delete c;
- }
-}
-void intrusive_ptr_add_ref(simgrid::s4u::Comm* c)
-{
- c->refcount_.fetch_add(1, std::memory_order_relaxed);
-}
} // namespace s4u
} // namespace simgrid