1. A process comprising the steps of: a thread X calling a completion-awaiting routine of a message passing interface library, the called 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(s) which have not yet been completed; a message passing interface library progress engine executing while the completion-awaiting routine is in the blocked condition; and a thread Y interrupting the completion-awaiting routine prior to satisfaction of the completion condition.