Fixes ticket 186.
First, move the OPAL_THREAD_LOCK out to the same level as its corresponding UNLOCK. It was possible to hit the UNLOCK without ever acquiring the lock. Since the OPAL_THREAD_ADD64() is now protected by this lock, we can just do the decrement non-atomically. This commit was SVN r11958.
Этот коммит содержится в:
родитель
1177844d7a
Коммит
836261b85a
@ -300,11 +300,12 @@ static void mca_pml_dr_frag_completion(
|
||||
}
|
||||
|
||||
/* have all pending frags completed for this vfrag? */
|
||||
if(OPAL_THREAD_ADD64(&vfrag->vf_pending,-1) == 0) {
|
||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
||||
vfrag->vf_pending -= 1;
|
||||
if(vfrag->vf_pending == 0) {
|
||||
MCA_PML_DR_VFRAG_WDOG_STOP(vfrag);
|
||||
|
||||
/* has the vfrag already been acked */
|
||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
||||
if (vfrag->vf_ack == vfrag->vf_mask) {
|
||||
|
||||
sendreq->req_bytes_delivered += vfrag->vf_size;
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user