equal
deleted
inserted
replaced
47 if (nworking == 0) { |
47 if (nworking == 0) { |
48 return false; |
48 return false; |
49 } |
49 } |
50 |
50 |
51 const uint new_nworking = nworking + 1; |
51 const uint new_nworking = nworking + 1; |
52 const uint prev_nworking = Atomic::cmpxchg(new_nworking, nworking_stage, nworking); |
52 const uint prev_nworking = Atomic::cmpxchg(nworking_stage, nworking, new_nworking); |
53 if (prev_nworking == nworking) { |
53 if (prev_nworking == nworking) { |
54 // Success |
54 // Success |
55 return true; |
55 return true; |
56 } |
56 } |
57 |
57 |