fix for threaded case
This commit was SVN r2345.
Этот коммит содержится в:
родитель
16d250b376
Коммит
09192b32b4
@ -39,9 +39,24 @@ static void mca_oob_tcp_msg_destruct(mca_oob_tcp_msg_t* msg)
|
|||||||
|
|
||||||
int mca_oob_tcp_msg_wait(mca_oob_tcp_msg_t* msg, int* rc)
|
int mca_oob_tcp_msg_wait(mca_oob_tcp_msg_t* msg, int* rc)
|
||||||
{
|
{
|
||||||
|
#if OMPI_HAVE_THREADS
|
||||||
|
OMPI_THREAD_LOCK(&msg->msg_lock);
|
||||||
|
while(msg->msg_complete == false) {
|
||||||
|
if(ompi_event_progress_thread()) {
|
||||||
|
OMPI_THREAD_UNLOCK(&msg->msg_lock);
|
||||||
|
ompi_event_loop(OMPI_EVLOOP_ONCE);
|
||||||
|
OMPI_THREAD_LOCK(&msg->msg_lock);
|
||||||
|
} else {
|
||||||
|
ompi_condition_wait(&msg->msg_condition, &msg->msg_lock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OMPI_THREAD_UNLOCK(&msg->msg_lock);
|
||||||
|
|
||||||
|
#else
|
||||||
/* wait for message to complete */
|
/* wait for message to complete */
|
||||||
while(msg->msg_complete == false)
|
while(msg->msg_complete == false)
|
||||||
ompi_event_loop(OMPI_EVLOOP_ONCE);
|
ompi_event_loop(OMPI_EVLOOP_ONCE);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* return status */
|
/* return status */
|
||||||
if(NULL != rc) {
|
if(NULL != rc) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user