@@ -4454,39 +4454,36 @@ PREFIX (event_wait) (caf_token_t token, size_t index,
44544454 int until_count , int * stat ,
44554455 char * errmsg , int errmsg_len )
44564456{
4457- int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
4458- int * var = NULL ,flag ,old = 0 ;
4459- int newval = 0 ;
4457+ int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
4458+ int * var = NULL , flag , old = 0 ;
4459+ int newval = 0 ;
44604460 const int spin_loop_max = 20000 ;
44614461 MPI_Win * p = TOKEN (token );
44624462 const char msg [] = "Error on event wait" ;
44634463
44644464 if (stat != NULL )
44654465 * stat = 0 ;
44664466
4467- MPI_Win_get_attr (* p ,MPI_WIN_BASE ,& var ,& flag );
4467+ MPI_Win_get_attr (* p , MPI_WIN_BASE , & var , & flag );
44684468
44694469 for (i = 0 ; i < spin_loop_max ; ++ i )
44704470 {
4471- MPI_Win_sync (* p );
4471+ MPI_Win_sync (* p );
44724472 count = var [index ];
44734473 if (count >= until_count )
44744474 break ;
44754475 }
44764476
4477- i = 1 ;
4477+ i = 1 ;
44784478 while (count < until_count )
4479- /* for(i = 0; i < spin_loop_max; ++i) */
4480- {
4481- MPI_Win_sync (* p );
4482- count = var [index ];
4483- /* if(count >= until_count) */
4484- /* break; */
4485- usleep (10 * i );
4486- i ++ ;
4487- /* Needed to enforce MPI progress */
4488- CAF_Win_unlock (image , * p );
4489- }
4479+ {
4480+ MPI_Win_sync (* p );
4481+ count = var [index ];
4482+ usleep (10 * i );
4483+ ++ i ;
4484+ /* Needed to enforce MPI progress */
4485+ MPI_Win_flush (image , * p );
4486+ }
44904487
44914488 newval = - until_count ;
44924489
0 commit comments