Fixes trac:183.
Don't try to acquire ompi_request_lock here, which in all cases is already held. Avoids deadlock that occurs even when threads are enabled and we're running a THREAD_SINGLE app. Reviewed by Galen. This commit was SVN r11957. The following Trac tickets were found above: Ticket 183 --> https://svn.open-mpi.org/trac/ompi/ticket/183
Этот коммит содержится в:
родитель
cd7d87aa7b
Коммит
1177844d7a
@ -122,7 +122,6 @@ do {
|
|||||||
} \
|
} \
|
||||||
OPAL_THREAD_UNLOCK((recvreq)->req_mutex); \
|
OPAL_THREAD_UNLOCK((recvreq)->req_mutex); \
|
||||||
\
|
\
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock); \
|
|
||||||
opal_list_remove_item(&(recvreq)->req_proc->matched_receives, \
|
opal_list_remove_item(&(recvreq)->req_proc->matched_receives, \
|
||||||
(opal_list_item_t*)(recvreq)); \
|
(opal_list_item_t*)(recvreq)); \
|
||||||
\
|
\
|
||||||
@ -142,7 +141,6 @@ do {
|
|||||||
if( true == recvreq->req_recv.req_base.req_free_called ) { \
|
if( true == recvreq->req_recv.req_base.req_free_called ) { \
|
||||||
MCA_PML_DR_RECV_REQUEST_RETURN( recvreq ); \
|
MCA_PML_DR_RECV_REQUEST_RETURN( recvreq ); \
|
||||||
} \
|
} \
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
|
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +246,6 @@ do {
|
|||||||
mca_pml_base_bsend_request_fini((ompi_request_t*)sendreq); \
|
mca_pml_base_bsend_request_fini((ompi_request_t*)sendreq); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock); \
|
|
||||||
if( false == sendreq->req_send.req_base.req_ompi.req_complete ) { \
|
if( false == sendreq->req_send.req_base.req_ompi.req_complete ) { \
|
||||||
/* Should only be called for long messages (maybe synchronous) */ \
|
/* Should only be called for long messages (maybe synchronous) */ \
|
||||||
MCA_PML_DR_SEND_REQUEST_MPI_COMPLETE(sendreq); \
|
MCA_PML_DR_SEND_REQUEST_MPI_COMPLETE(sendreq); \
|
||||||
@ -263,7 +262,6 @@ do {
|
|||||||
ompi_convertor_set_position(&sendreq->req_send.req_convertor, &offset); \
|
ompi_convertor_set_position(&sendreq->req_send.req_convertor, &offset); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
|
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user