/* progress an OSC request */ static int ompi_osc_pt2pt_comm_complete (ompi_request_t *request) { ompi_osc_pt2pt_module_t *module = (ompi_osc_pt2pt_module_t*) request->req_complete_cb_data; OPAL_OUTPUT_VERBOSE((10, ompi_osc_base_framework.framework_output, "isend_completion_cb called")); mark_outgoing_completion(module); ompi_request_free (&request); return 1; }
static int frag_send_cb (ompi_request_t *request) { ompi_osc_pt2pt_frag_t *frag = (ompi_osc_pt2pt_frag_t*) request->req_complete_cb_data; ompi_osc_pt2pt_module_t *module = frag->module; OPAL_OUTPUT_VERBOSE((50, ompi_osc_base_framework.framework_output, "osc pt2pt: frag_send complete to %d, frag = %p, request = %p", frag->target, (void *) frag, (void *) request)); mark_outgoing_completion(module); opal_free_list_return (&mca_osc_pt2pt_component.frags, &frag->super); ompi_request_free (&request); return 1; }
/* progress an OSC request */ static int ompi_osc_pt2pt_req_comm_complete (ompi_request_t *request) { ompi_osc_pt2pt_request_t *pt2pt_request = (ompi_osc_pt2pt_request_t *) request->req_complete_cb_data; ompi_osc_pt2pt_module_t *module = pt2pt_request->module; OPAL_OUTPUT_VERBOSE((10, ompi_osc_base_framework.framework_output, "ompi_osc_pt2pt_req_comm_complete called tag = %d", request->req_status.MPI_TAG)); mark_outgoing_completion (module); if (0 == OPAL_THREAD_ADD32(&pt2pt_request->outstanding_requests, -1)) { ompi_osc_pt2pt_request_complete (pt2pt_request, request->req_status.MPI_ERROR); } /* put this request on the garbage colletion list */ osc_pt2pt_gc_add_request (module, request); return OMPI_SUCCESS; }
/* progress an OSC request */ static int ompi_osc_rdma_req_comm_complete (ompi_request_t *request) { ompi_osc_rdma_request_t *rdma_request = (ompi_osc_rdma_request_t *) request->req_complete_cb_data; ompi_osc_rdma_module_t *module = rdma_request->module; OPAL_OUTPUT_VERBOSE((10, ompi_osc_base_framework.framework_output, "ompi_osc_rdma_req_comm_complete called tag = %d", request->req_status.MPI_TAG)); mark_outgoing_completion (module); OPAL_THREAD_LOCK(&ompi_request_lock); if (0 == --rdma_request->outstanding_requests) { ompi_osc_rdma_request_complete (rdma_request, request->req_status.MPI_ERROR); } OPAL_THREAD_UNLOCK(&ompi_request_lock); /* put this request on the garbage colletion list */ osc_rdma_gc_add_request (request); return OMPI_SUCCESS; }