@@ -1660,9 +1660,10 @@ static int ompi_osc_pt2pt_callback (ompi_request_t *request)
16601660
16611661    osc_pt2pt_gc_clean  (module );
16621662
1663+     ompi_osc_pt2pt_frag_start_receive  (module );
1664+ 
16631665    /* put this request on the garbage colletion list */ 
16641666    osc_pt2pt_gc_add_request  (module , request );
1665-     ompi_osc_pt2pt_frag_start_receive  (module );
16661667
16671668    OPAL_OUTPUT_VERBOSE ((50 , ompi_osc_base_framework .framework_output ,
16681669                         "finished posting receive request" ));
@@ -1672,6 +1673,7 @@ static int ompi_osc_pt2pt_callback (ompi_request_t *request)
16721673
16731674int  ompi_osc_pt2pt_frag_start_receive  (ompi_osc_pt2pt_module_t  * module )
16741675{
1676+     module -> frag_request  =  MPI_REQUEST_NULL ;
16751677    return  ompi_osc_pt2pt_irecv_w_cb  (module -> incoming_buffer , mca_osc_pt2pt_component .buffer_size  +  sizeof  (ompi_osc_pt2pt_frag_header_t ),
16761678                                     MPI_BYTE , OMPI_ANY_SOURCE , OSC_PT2PT_FRAG_TAG , module -> comm , & module -> frag_request ,
16771679                                     ompi_osc_pt2pt_callback , module );
@@ -1731,11 +1733,14 @@ int ompi_osc_pt2pt_irecv_w_cb (void *ptr, int count, ompi_datatype_t *datatype,
17311733
17321734    request -> req_complete_cb  =  cb ;
17331735    request -> req_complete_cb_data  =  ctx ;
1734-     if  (request_out ) {
1736+ 
1737+     ret  =  MCA_PML_CALL (start (1 , & request ));
1738+     if  (request_out  &&  MPI_REQUEST_NULL  !=  request ) {
17351739        * request_out  =  request ;
17361740    }
17371741
1738-     ret  =  MCA_PML_CALL (start (1 , & request ));
1742+     OPAL_OUTPUT_VERBOSE ((50 , ompi_osc_base_framework .framework_output ,
1743+                          "osc pt2pt: pml start returned %d. state: %d" , ret , request -> req_state ));
17391744
17401745    return  ret ;
17411746}
0 commit comments