|
10 | 10 | * University of Stuttgart. All rights reserved. |
11 | 11 | * Copyright (c) 2004-2006 The Regents of the University of California. |
12 | 12 | * All rights reserved. |
13 | | - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights |
| 13 | + * Copyright (c) 2015-2017 Los Alamos National Security, LLC. All rights |
14 | 14 | * reserved. |
15 | 15 | * Copyright (c) 2015 Research Organization for Information Science |
16 | 16 | * and Technology (RIST). All rights reserved. |
@@ -382,28 +382,31 @@ do { \ |
382 | 382 | } while(0); |
383 | 383 |
|
384 | 384 |
|
385 | | -#define MCA_PML_CM_HVY_SEND_REQUEST_START(sendreq, ret) \ |
386 | | -do { \ |
387 | | - ret = OMPI_SUCCESS; \ |
388 | | - MCA_PML_CM_SEND_REQUEST_START_SETUP(&(sendreq)->req_send); \ |
389 | | - if (sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED) { \ |
390 | | - MCA_PML_CM_HVY_SEND_REQUEST_BSEND_ALLOC(sendreq, ret); \ |
391 | | - } \ |
392 | | - if (OMPI_SUCCESS == ret) { \ |
393 | | - ret = OMPI_MTL_CALL(isend(ompi_mtl, \ |
394 | | - sendreq->req_send.req_base.req_comm, \ |
395 | | - sendreq->req_peer, \ |
396 | | - sendreq->req_tag, \ |
397 | | - &sendreq->req_send.req_base.req_convertor, \ |
398 | | - sendreq->req_send.req_send_mode, \ |
399 | | - sendreq->req_blocking, \ |
400 | | - &sendreq->req_mtl)); \ |
401 | | - if(OMPI_SUCCESS == ret && \ |
402 | | - sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED) { \ |
403 | | - sendreq->req_send.req_base.req_ompi.req_status.MPI_ERROR = 0; \ |
404 | | - ompi_request_complete(&(sendreq)->req_send.req_base.req_ompi, true); \ |
405 | | - } \ |
406 | | - } \ |
| 385 | +#define MCA_PML_CM_HVY_SEND_REQUEST_START(sendreq, ret) \ |
| 386 | +do { \ |
| 387 | + ret = OMPI_SUCCESS; \ |
| 388 | + MCA_PML_CM_SEND_REQUEST_START_SETUP(&(sendreq)->req_send); \ |
| 389 | + if (sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED) { \ |
| 390 | + MCA_PML_CM_HVY_SEND_REQUEST_BSEND_ALLOC(sendreq, ret); \ |
| 391 | + } \ |
| 392 | + if (OMPI_SUCCESS == ret) { \ |
| 393 | + ret = OMPI_MTL_CALL(isend(ompi_mtl, \ |
| 394 | + sendreq->req_send.req_base.req_comm, \ |
| 395 | + sendreq->req_peer, \ |
| 396 | + sendreq->req_tag, \ |
| 397 | + &sendreq->req_send.req_base.req_convertor, \ |
| 398 | + sendreq->req_send.req_send_mode, \ |
| 399 | + sendreq->req_blocking, \ |
| 400 | + &sendreq->req_mtl)); \ |
| 401 | + if(OMPI_SUCCESS == ret && \ |
| 402 | + sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED) { \ |
| 403 | + sendreq->req_send.req_base.req_ompi.req_status.MPI_ERROR = 0; \ |
| 404 | + if(!REQUEST_COMPLETE(&sendreq->req_send.req_base.req_ompi)) { \ |
| 405 | + /* request may have already been marked complete by the MTL */ \ |
| 406 | + ompi_request_complete(&(sendreq)->req_send.req_base.req_ompi, true); \ |
| 407 | + } \ |
| 408 | + } \ |
| 409 | + } \ |
407 | 410 | } while (0) |
408 | 411 |
|
409 | 412 | /* |
|
423 | 426 | } \ |
424 | 427 | \ |
425 | 428 | if( !REQUEST_COMPLETE(&sendreq->req_send.req_base.req_ompi)) { \ |
426 | | - /* Should only be called for long messages (maybe synchronous) */ \ |
| 429 | + /* the request may have already been marked complete by the MTL */ \ |
427 | 430 | ompi_request_complete(&(sendreq->req_send.req_base.req_ompi), true); \ |
428 | 431 | } \ |
429 | 432 | sendreq->req_send.req_base.req_pml_complete = true; \ |
|
0 commit comments