From 303941f6422e45fb1c01a1e8096e47de0cba9665 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Thu, 27 Mar 2008 18:37:11 +0000 Subject: [PATCH] Avoid a deadlock. The comment explain how this might happen. This commit was SVN r17994. --- ompi/request/request.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ompi/request/request.h b/ompi/request/request.h index 5874e4c762..42f54fd1cb 100644 --- a/ompi/request/request.h +++ b/ompi/request/request.h @@ -398,8 +398,12 @@ static inline int ompi_request_complete(ompi_request_t* request) } ompi_request_completed++; request->req_complete = true; - if(ompi_request_waiting) - opal_condition_signal(&ompi_request_cond); + if(ompi_request_waiting) { + /* Broadcast the condition, otherwise if there is already a thread + * waiting on another request it can use all signals. + */ + opal_condition_broadcast(&ompi_request_cond); + } return OMPI_SUCCESS; }