1
1
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.
Этот коммит содержится в:
Andrew Friedley 2006-10-03 18:15:26 +00:00
родитель 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;