コード例 #1
0
ファイル: eager_snd.c プロジェクト: raffenet/ucx
static ucs_status_t ucp_tag_eager_sync_contig_bcopy_single(uct_pending_req_t *self)
{
    ucs_status_t status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_SYNC_ONLY,
                                                 ucp_tag_pack_eager_sync_only_contig);
    if (status == UCS_OK) {
        ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct);
        ucp_tag_eager_sync_completion(req, UCP_REQUEST_FLAG_LOCAL_COMPLETED);
    }
    return status;
}
コード例 #2
0
ファイル: eager_snd.c プロジェクト: raffenet/ucx
static ucs_status_t ucp_tag_eager_contig_bcopy_single(uct_pending_req_t *self)
{
    ucs_status_t status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_ONLY,
                                                 ucp_tag_pack_eager_only_contig);
    if (status == UCS_OK) {
        ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct);
        ucp_request_complete(req, req->cb.send, UCS_OK);
    }
    return status;
}
コード例 #3
0
ファイル: eager_snd.c プロジェクト: raffenet/ucx
static ucs_status_t ucp_tag_eager_sync_generic_single(uct_pending_req_t *self)
{
    ucs_status_t status;

    status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_SYNC_ONLY,
                                    ucp_tag_pack_eager_sync_only_generic);
    if (status == UCS_OK) {
        ucp_tag_eager_sync_generic_complete(self);
    }
    return UCS_OK;
}
コード例 #4
0
ファイル: eager_snd.c プロジェクト: ParaStation/psmpi2
static ucs_status_t ucp_tag_eager_bcopy_single(uct_pending_req_t *self)
{
    ucs_status_t status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_ONLY,
                                                 ucp_tag_pack_eager_only_dt);
    if (status == UCS_OK) {
        ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct);
        ucp_request_send_generic_dt_finish(req);
        ucp_request_complete_send(req, UCS_OK);
    }
    return status;
}
コード例 #5
0
ファイル: eager_snd.c プロジェクト: raffenet/ucx
static ucs_status_t ucp_tag_eager_generic_single(uct_pending_req_t *self)
{
    ucs_status_t status;

    status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_ONLY,
                                    ucp_tag_pack_eager_only_generic);
    if (status != UCS_OK) {
        return status;
    }

    ucp_tag_eager_generic_complere(self);
    return UCS_OK;
}
コード例 #6
0
ファイル: eager_snd.c プロジェクト: ParaStation/psmpi2
static ucs_status_t ucp_tag_eager_sync_bcopy_single(uct_pending_req_t *self)
{
    ucs_status_t status = ucp_do_am_bcopy_single(self, UCP_AM_ID_EAGER_SYNC_ONLY,
                                                 ucp_tag_pack_eager_sync_only_dt);
    if (status == UCS_OK) {
        ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct);
        ucp_request_send_generic_dt_finish(req);
        ucp_tag_eager_sync_completion(req, UCP_REQUEST_FLAG_LOCAL_COMPLETED,
                                      UCS_OK);
    } else if (status == UCP_STATUS_PENDING_SWITCH) {
        status = UCS_OK;
    }
    return status;
}