In the case we have support for threads, then the opal library have it's own
thread, which will do progress independently of MPI. So in this case we have to call opal_event_loop instead of opal_progress. This commit was SVN r9551.
Этот коммит содержится в:
родитель
7408de0bfb
Коммит
ca75ff2569
@ -119,9 +119,8 @@ int mca_oob_tcp_msg_timedwait(mca_oob_tcp_msg_t* msg, int* rc, struct timespec*
|
||||
if(opal_event_progress_thread()) {
|
||||
int rc;
|
||||
OPAL_THREAD_UNLOCK(&msg->msg_lock);
|
||||
opal_progress();
|
||||
/*rc = opal_event_loop(OPAL_EVLOOP_ONCE);
|
||||
assert(rc >= 0);*/
|
||||
rc = opal_event_loop(OPAL_EVLOOP_ONCE);
|
||||
assert(rc >= 0);
|
||||
OPAL_THREAD_LOCK(&msg->msg_lock);
|
||||
} else {
|
||||
opal_condition_timedwait(&msg->msg_condition, &msg->msg_lock, abstime);
|
||||
@ -134,7 +133,6 @@ int mca_oob_tcp_msg_timedwait(mca_oob_tcp_msg_t* msg, int* rc, struct timespec*
|
||||
while(msg->msg_complete == false &&
|
||||
((uint32_t)tv.tv_sec <= secs ||
|
||||
((uint32_t)tv.tv_sec == secs && (uint32_t)tv.tv_usec < usecs))) {
|
||||
/*(void)opal_event_loop(OPAL_EVLOOP_ONCE);*/
|
||||
opal_progress();
|
||||
gettimeofday(&tv,NULL);
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user