wasm-micro-runtime/samples/bh_atomic/main.c

33 lines
618 B
C

/*
* Copyright (C) 2023 Midokura Japan KK. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#include <assert.h>
#include "bh_platform.h"
#include "bh_atomic.h"
int
main(int argc, char **argv)
{
bh_atomic_32_t v;
uint32 o;
v = 0x00ff00ff;
o = BH_ATOMIC_32_LOAD(v);
assert(o == 0x00ff00ff);
v = 0x00ff00ff;
o = BH_ATOMIC_32_FETCH_OR(v, 0xffff0000);
assert(o == 0x00ff00ff);
assert(v == 0xffff00ff);
v = 0x00ff00ff;
o = BH_ATOMIC_32_FETCH_AND(v, 0xffff0000);
assert(o == 0x00ff00ff);
assert(v == 0x00ff0000);
return 0;
}