|
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