1. A process comprising the steps of: a thread X in an application calling an interruptible completion-awaiting routine of a message passing interface (MPI) library, the called interruptible completion-awaiting routine being configured to return successfully from a blocked condition after a specified message passing completion condition is satisfied, the completion condition specifying a list of requests which have not yet been completed; a message passing interface library progress engine executing while the interruptible completion-awaiting routine is in the blocked condition; a thread Y interrupting the interruptible completion-awaiting routine prior to satisfaction of the completion condition; and the interruptible completion-awaiting routine returning control in response to interruption by the thread Y, as part of an interruptible wait enhancement which (a) is not an asynchronous callback enhancement, (b) allows an interruption of the completion-awaiting routine without canceling the completion-awaiting routine, and wherein the interruptible completion-awaiting routine returns with a completion indicator which indicates that at least one of the listed requests was completed prior to the interruption and also indicates that at least one of the listed requests was not completed prior to the interruption, and (c) allows the application to make progress; wherein the interruptible wait enhancement of the interrupted completion-awaiting routine returns control to the thread X in conjunction with an indication specifying that more than 1 and less than N messaging operations in the list of N messaging operations had completed when the thread Y interrupted the completion-awaiting routine, with N being an integer greater than 2.