<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Thank you for the detailed explanation. The described intent makes 
sense, but I am not sure how this statement follows from the standard:<br><br>2015-11-02 15:41 GMT+01:00 William Gropp <span dir="ltr"><<a href="mailto:wgropp@illinois.edu" target="_blank">wgropp@illinois.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">However, note that if the cancel fails, then the communication is not marked for cancellation, and an MPI_Wait could then wait until the message is received. <br></div></blockquote><div><br></div><div>The standard says that "[a] call to MPI_CANCEL marks for cancellation a pending, nonblocking communication operation". It does not say that the cancellation has to suceed, but it does say that MPI_Cancel marks the operation for cancellation -- unconditionally, as far as I can see (unless an error occurs, of course -- but that wasn't what you meant by the cancel failing, or was it?). From this and the statement I cited previously ("[i]f a communication is marked for cancellation, then a MPI_WAIT call 
for that communication is guaranteed to return, irrespective of the 
activities of other processes (i.e., MPI_WAIT behaves as a local 
function)") it follows by modus ponens that MPI_Wait for a request on which MPI_Cancel has been called must behave as a local function. Am I interpreting this incorrectly?<br><br></div><div>Once again, thank you for your time.<br></div></div><br></div><div class="gmail_extra">Marek Tomáštík<br></div></div>