Program Listing for File SharedReceiveContext.cpp

Return to documentation for file (BackendLibfabric/SharedReceiveContext.cpp)

#include "SharedReceiveContext.hpp"

#include <tracy/Tracy.hpp>

#include "Issues.hpp"

netio3::libfabric::SharedReceiveContext::SharedReceiveContext(fid_domain* domain, const fi_info* info)
{
  ZoneScoped;
  fid_ep* srx_ctx{nullptr};
  if (const auto ret = fi_srx_context(domain, info->rx_attr, &srx_ctx, nullptr)) {
    throw LibfabricSharedReceiveContextError(
      ERS_HERE,
      std::format("{} - {}", ret, fi_strerror(-ret)));
  }
  m_srx_ctx = FiCloseUniquePtr<fid_ep>(
    srx_ctx, FiCloseDeleter<fid_ep>("Failed to close shared receive context"));
}