Skip to content

Commit 6055041

Browse files
committed
modify atomic macros to use reference rather than pointer semantics for changeable arguments, update argument usage appropriately for modified atomic macros
1 parent 8c23399 commit 6055041

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+304
-302
lines changed

Anderson.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ static void * Worker( void * arg ) {
4848
for ( entry = 0; stop == 0; entry += 1 ) {
4949
NCS;
5050

51-
myPlace = Fai( &queueLast, 1 );
51+
myPlace = Fai( queueLast, 1 );
5252
// Restore queueLast to [0,N) on roll over, but modified Fig 2 to remove modulus in the fast path by adding
5353
// an extra atomic instruction every Nth entry.
5454
if ( UNLIKELY( myPlace >= N ) ) {
55-
if ( myPlace == N ) Fai( &queueLast, -N );
55+
if ( myPlace == N ) Fai( queueLast, -N );
5656
myPlace -= N;
5757
} // if
5858
while ( flags[myPlace] == MUST_WAIT ) Pause(); // busy wait
@@ -71,15 +71,15 @@ static void * Worker( void * arg ) {
7171
#endif // FAST
7272
} // for
7373

74-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
74+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7575

7676
#ifdef FAST
7777
id = oid;
7878
#endif // FAST
7979
entries[r][id] = entry;
80-
Fai( &Arrived, 1 );
80+
Fai( Arrived, 1 );
8181
while ( stop != 0 ) Pause();
82-
Fai( &Arrived, -1 );
82+
Fai( Arrived, -1 );
8383
} // for
8484

8585
return NULL;

AndersonKim.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -245,15 +245,15 @@ static void * Worker( void * arg ) {
245245
#endif // FAST
246246
} // for
247247

248-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
248+
Fai( sumOfThreadChecksums, randomThreadChecksum );
249249

250250
#ifdef FAST
251251
id = oid;
252252
#endif // FAST
253253
entries[r][id] = entry;
254-
Fai( &Arrived, 1 );
254+
Fai( Arrived, 1 );
255255
while ( stop != 0 ) Pause();
256-
Fai( &Arrived, -1 );
256+
Fai( Arrived, -1 );
257257
} // for
258258
return NULL;
259259
} // Worker

AravindF3.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,15 @@ static void * Worker( void * arg ) {
6161
#endif // FAST
6262
} // for
6363

64-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
64+
Fai( sumOfThreadChecksums, randomThreadChecksum );
6565

6666
#ifdef FAST
6767
id = oid;
6868
#endif // FAST
6969
entries[r][id] = entry;
70-
Fai( &Arrived, 1 );
70+
Fai( Arrived, 1 );
7171
while ( stop != 0 ) Pause();
72-
Fai( &Arrived, -1 );
72+
Fai( Arrived, -1 );
7373
} // for
7474
return NULL;
7575
} // Worker

AravindF4.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ static void * Worker( void * arg ) {
6666
#endif // FAST
6767
} // for
6868

69-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
69+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7070

7171
#ifdef FAST
7272
id = oid;
7373
#endif // FAST
7474
entries[r][id] = entry;
75-
Fai( &Arrived, 1 );
75+
Fai( Arrived, 1 );
7676
while ( stop != 0 ) Pause();
77-
Fai( &Arrived, -1 );
77+
Fai( Arrived, -1 );
7878
} // for
7979
return NULL;
8080
} // Worker

Arbiter.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ static void * Worker( void * arg ) {
3737
#endif // FAST
3838
} // for
3939

40-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
40+
Fai( sumOfThreadChecksums, randomThreadChecksum );
4141

4242
#ifdef FAST
4343
id = oid;
4444
#endif // FAST
4545
entries[r][id] = entry;
46-
Fai( &Arrived, 1 );
46+
Fai( Arrived, 1 );
4747
while ( stop != 0 ) Pause();
48-
Fai( &Arrived, -1 );
48+
Fai( Arrived, -1 );
4949
} // for
5050
return NULL;
5151
} // Worker

BarrierFai.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ static TYPE PAD2 CALIGN __attribute__(( unused )); // protect further false sha
1313
static inline void block( Barrier * b ) {
1414
TYPE negflag = ! b->flag; // optimization (compiler probably does it)
1515

16-
if ( FASTPATH( Fai( &b->count, 1 ) < N - 1 ) ) {
16+
if ( FASTPATH( Fai( b->count, 1 ) < N - 1 ) ) {
1717
await( b->flag == negflag );
1818
} else {
1919
// CALL ACTION CALLBACK BEFORE TRIGGERING BARRIER

BarrierTreeCombMCS.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ static TYPE PAD2 CALIGN __attribute__(( unused )); // protect further false sha
1919
#define BARRIER_CALL block( &b, p, &sense );
2020

2121
static inline void block_aux( Barrier_node * bn, TYPE sense ) {
22-
if ( Fai( &bn->count, 1 ) == bn->k - 1 ) {
22+
if ( Fai( bn->count, 1 ) == bn->k - 1 ) {
2323
if ( bn->parent ) {
2424
block_aux( bn->parent, sense ); // recursion
2525
} // if

BarrierWorker.c

-8
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,10 @@ static void * Worker( void * arg ) {
5757

5858
cnt[p] = 0;
5959

60-
#ifndef __cplusplus
61-
Fai( &Arrived, 1 );
62-
#else
6360
Fai( Arrived, 1 );
64-
#endif // __cplusplus
6561
while ( stop ) Pause();
6662
if ( p == 0 ) stopcnt = 0;
67-
#ifndef __cplusplus
68-
Fai( &Arrived, -1 );
69-
#else
7063
Fai( Arrived, -1 );
71-
#endif // __cplusplus
7264
} // for
7365

7466
return NULL;

Burns2.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,15 @@ static void * Worker( void * arg ) {
7070
#endif // FAST
7171
} // for
7272

73-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
73+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7474

7575
#ifdef FAST
7676
id = oid;
7777
#endif // FAST
7878
entries[r][id] = entry;
79-
Fai( &Arrived, 1 );
79+
Fai( Arrived, 1 );
8080
while ( stop != 0 ) Pause();
81-
Fai( &Arrived, -1 );
81+
Fai( Arrived, -1 );
8282
} // for
8383
return NULL;
8484
} // Worker

BurnsLynch.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ static void * Worker( void * arg ) {
6262
#endif // FAST
6363
} // for
6464

65-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
65+
Fai( sumOfThreadChecksums, randomThreadChecksum );
6666

6767
#ifdef FAST
6868
id = oid;
6969
#endif // FAST
7070
entries[r][id] = entry;
71-
Fai( &Arrived, 1 );
71+
Fai( Arrived, 1 );
7272
while ( stop != 0 ) Pause();
73-
Fai( &Arrived, -1 );
73+
Fai( Arrived, -1 );
7474
} // for
7575
return NULL;
7676
} // Worker

CLH.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ static TYPE PAD2 CALIGN __attribute__(( unused )); // protect further false sha
2525

2626
static inline void clh_lock( CLH_lock * lock, qnode_ptr * prev NPARM() ) {
2727
*node = false;
28-
*prev = Fas( lock, node );
28+
*prev = Fas( *lock, node );
2929
await( **prev );
3030
WO( Fence(); );
3131
} // clh_lock
@@ -71,15 +71,15 @@ static void * Worker( void * arg ) {
7171
#endif // FAST
7272
} // for
7373

74-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
74+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7575

7676
#ifdef FAST
7777
id = oid;
7878
#endif // FAST
7979
entries[r][id] = entry;
80-
Fai( &Arrived, 1 );
80+
Fai( Arrived, 1 );
8181
while ( stop != 0 ) Pause();
82-
Fai( &Arrived, -1 );
82+
Fai( Arrived, -1 );
8383
} // for
8484

8585
#ifndef THREADLOCAL

CLH_Scott_F12.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ static TYPE PAD2 CALIGN __attribute__(( unused )); // protect further false sha
2626

2727
static inline void clh_lock( qnode_ptr p ) {
2828
p->succ_must_wait = true;
29-
qnode_ptr pred = p->prev = Fas( &tail, p );
29+
qnode_ptr pred = p->prev = Fas( tail, p );
3030
await( ! pred->succ_must_wait );
3131
WO( Fence(); );
3232
} // clh_lock
@@ -70,15 +70,15 @@ static void * Worker( void * arg ) {
7070
#endif // FAST
7171
} // for
7272

73-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
73+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7474

7575
#ifdef FAST
7676
id = oid;
7777
#endif // FAST
7878
entries[r][id] = entry;
79-
Fai( &Arrived, 1 );
79+
Fai( Arrived, 1 );
8080
while ( stop != 0 ) Pause();
81-
Fai( &Arrived, -1 );
81+
Fai( Arrived, -1 );
8282
} // for
8383

8484
free( node_ptr );

CLH_Scott_F14.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static inline void clh_lock( TYPE id ) {
2222
qnode_ptr p = thread_qnode_ptrs[id];
2323
(*p.qnode_ptr).qnode = true;
2424
qnode_ptr pred;
25-
pred.qnode_ptr = Fas( &(tail.qnode_ptr), p.qnode_ptr );
25+
pred.qnode_ptr = Fas( (tail.qnode_ptr), p.qnode_ptr );
2626
thread_qnode_ptrs[id] = pred;
2727
await( ! (*pred.qnode_ptr).qnode );
2828
head = p;
@@ -62,15 +62,15 @@ static void * Worker( void * arg ) {
6262
#endif // FAST
6363
} // for
6464

65-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
65+
Fai( sumOfThreadChecksums, randomThreadChecksum );
6666

6767
#ifdef FAST
6868
id = oid;
6969
#endif // FAST
7070
entries[r][id] = entry;
71-
Fai( &Arrived, 1 );
71+
Fai( Arrived, 1 );
7272
while ( stop != 0 ) Pause();
73-
Fai( &Arrived, -1 );
73+
Fai( Arrived, -1 );
7474
} // for
7575

7676
return NULL;

Communicate.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ static void * Worker( void * arg ) {
1313
} // for
1414

1515
entries[r][id] = entry;
16-
Fai( &Arrived, 1 );
16+
Fai( Arrived, 1 );
1717
while ( stop != 0 ) Pause();
18-
Fai( &Arrived, -1 );
18+
Fai( Arrived, -1 );
1919
} // for
2020
return NULL;
2121
} // Worker

DeBruijn.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ static void * Worker( void * arg ) {
4646
#endif // FAST
4747
} // for
4848

49-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
49+
Fai( sumOfThreadChecksums, randomThreadChecksum );
5050

5151
#ifdef FAST
5252
id = oid;
5353
#endif // FAST
5454
entries[r][id] = entry;
55-
Fai( &Arrived, 1 );
55+
Fai( Arrived, 1 );
5656
while ( stop != 0 ) Pause();
57-
Fai( &Arrived, -1 );
57+
Fai( Arrived, -1 );
5858
} // for
5959
return NULL;
6060
} // Worker

DekkerA.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,16 @@ static void * Worker( void * arg ) {
7575
#endif // FAST
7676
} // for
7777

78-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
78+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7979

8080
#ifdef FAST
8181
id = oid;
8282
other = inv( id );
8383
#endif // FAST
8484
entries[r][id] = entry;
85-
Fai( &Arrived, 1 );
85+
Fai( Arrived, 1 );
8686
while ( stop != 0 ) Pause();
87-
Fai( &Arrived, -1 );
87+
Fai( Arrived, -1 );
8888
} // for
8989
return NULL;
9090
} // Worker

DekkerB.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,16 @@ static void * Worker( void * arg ) {
7373
#endif // FAST
7474
} // for
7575

76-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
76+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7777

7878
#ifdef FAST
7979
id = oid;
8080
other = inv( id );
8181
#endif // FAST
8282
entries[r][id] = entry;
83-
Fai( &Arrived, 1 );
83+
Fai( Arrived, 1 );
8484
while ( stop != 0 ) Pause();
85-
Fai( &Arrived, -1 );
85+
Fai( Arrived, -1 );
8686
} // for
8787
return NULL;
8888
} // Worker

DekkerC.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,16 @@ static void * Worker( void * arg ) {
8383
#endif // FAST
8484
} // for
8585

86-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
86+
Fai( sumOfThreadChecksums, randomThreadChecksum );
8787

8888
#ifdef FAST
8989
id = oid;
9090
other = inv( id );
9191
#endif // FAST
9292
entries[r][id] = entry;
93-
Fai( &Arrived, 1 );
93+
Fai( Arrived, 1 );
9494
while ( stop != 0 ) Pause();
95-
Fai( &Arrived, -1 );
95+
Fai( Arrived, -1 );
9696
} // for
9797
return NULL;
9898
} // Worker

DekkerOrig.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ static void * Worker( void * arg ) {
4747
#endif // FAST
4848
} // for
4949

50-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
50+
Fai( sumOfThreadChecksums, randomThreadChecksum );
5151

5252
#ifdef FAST
5353
id = oid;
5454
other = inv( id );
5555
#endif // FAST
5656
entries[r][id] = entry;
57-
Fai( &Arrived, 1 );
57+
Fai( Arrived, 1 );
5858
while ( stop != 0 ) Pause();
59-
Fai( &Arrived, -1 );
59+
Fai( Arrived, -1 );
6060
} // for
6161
return NULL;
6262
} // Worker

DekkerRW.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,16 @@ static void * Worker( void * arg ) {
7171
#endif // FAST
7272
} // for
7373

74-
Fai( &sumOfThreadChecksums, randomThreadChecksum );
74+
Fai( sumOfThreadChecksums, randomThreadChecksum );
7575

7676
#ifdef FAST
7777
id = oid;
7878
other = inv( id );
7979
#endif // FAST
8080
entries[r][id] = entry;
81-
Fai( &Arrived, 1 );
81+
Fai( Arrived, 1 );
8282
while ( stop != 0 ) Pause();
83-
Fai( &Arrived, -1 );
83+
Fai( Arrived, -1 );
8484
} // for
8585
return NULL;
8686
} // Worker

0 commit comments

Comments
 (0)