rjw | 1f88458 | 2022-01-06 17:20:42 +0800 | [diff] [blame^] | 1 | // SPDX-License-Identifier: GPL-2.0 |
2 | #include <stdint.h> | ||||
3 | |||||
4 | volatile uint64_t x; | ||||
5 | |||||
6 | int main(int argc, char *argv[]) | ||||
7 | { | ||||
8 | uint64_t old, new = argc; | ||||
9 | |||||
10 | argv = argv; | ||||
11 | do { | ||||
12 | old = __sync_val_compare_and_swap(&x, 0, 0); | ||||
13 | } while (!__sync_bool_compare_and_swap(&x, old, new)); | ||||
14 | return old == new; | ||||
15 | } |