15
15
} while (0)
16
16
17
17
static aligned_t spinner (void * arg ) {
18
- while (* (aligned_t * )arg == 0 );
18
+ while (atomic_load_explicit ((_Atomic aligned_t * )arg , memory_order_relaxed ) ==
19
+ 0 );
19
20
return 1 ;
20
21
}
21
22
@@ -32,11 +33,12 @@ int main(int argc, char *argv[]) {
32
33
33
34
TEST_OPTION (STACK_SIZE , >=, 2048 );
34
35
{
35
- aligned_t r = 0 ;
36
+ _Atomic aligned_t r ;
37
+ atomic_store_explicit (& r , 0u , memory_order_relaxed );
36
38
TEST_OPTION (BUSYNESS , = = , 1 ); // Just this thread
37
39
TEST_OPTION (NODE_BUSYNESS , = = , 1 );
38
40
TEST_OPTION (WORKER_OCCUPATION , = = , 1 );
39
- qthread_fork (spinner , & r , & r );
41
+ qthread_fork (spinner , ( void * ) & r , ( aligned_t * ) & r );
40
42
qthread_flushsc ();
41
43
TEST_OPTION (BUSYNESS , >=, 1 );
42
44
TEST_OPTION (BUSYNESS , <=, 2 );
@@ -45,8 +47,8 @@ int main(int argc, char *argv[]) {
45
47
TEST_OPTION (NODE_BUSYNESS , <=, 2 );
46
48
TEST_OPTION (WORKER_OCCUPATION , >=, 1 );
47
49
TEST_OPTION (WORKER_OCCUPATION , <=, 2 );
48
- r = 1 ;
49
- qthread_readFF (NULL , & r );
50
+ atomic_store_explicit ( & r , 1u , memory_order_relaxed ) ;
51
+ qthread_readFF (NULL , ( aligned_t * ) & r );
50
52
}
51
53
{
52
54
size_t sheps ;
0 commit comments