@@ -343,19 +343,20 @@ test_writes_reads_eagain(void) // rdar://problem/8333366
343
343
test_errno ("pipe" , errno , 0 );
344
344
test_stop ();
345
345
}
346
- const size_t chunks = 320 ;
346
+ const int32_t chunks = 320 ;
347
347
const size_t siz_chunk = 32 , siz = siz_chunk * chunks ;
348
348
349
349
dispatch_queue_t q = dispatch_get_global_queue (0 ,0 );
350
350
dispatch_group_t g = dispatch_group_create ();
351
- __block size_t siz_acc = 0 , deliveries = 0 ;
351
+ volatile __block int32_t deliveries = 0 ;
352
+ __block size_t siz_acc = 0 ;
352
353
__block void (^b )(dispatch_data_t , int );
353
354
b = Block_copy (^(dispatch_data_t data , int err ) {
354
355
if (err ) {
355
356
test_errno ("dispatch_read" , err , 0 );
356
357
test_stop ();
357
358
}
358
- deliveries ++ ;
359
+ OSAtomicIncrement32 ( & deliveries ) ;
359
360
siz_acc += dispatch_data_get_size (data );
360
361
if (siz_acc < siz ) {
361
362
dispatch_group_enter (g );
@@ -383,7 +384,7 @@ test_writes_reads_eagain(void) // rdar://problem/8333366
383
384
close (in );
384
385
close (* (fd + 1 ));
385
386
test_group_wait (g );
386
- test_long ("dispatch_read deliveries" , deliveries , chunks );
387
+ test_int32 ("dispatch_read deliveries" , deliveries , chunks );
387
388
test_long ("dispatch_read data size" , siz_acc , siz );
388
389
close (* fd );
389
390
Block_release (b );
0 commit comments