From f7c322c3116fcbb94fafaaa74cead8523514bf63 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sun, 16 Jun 2024 15:20:29 +0800 Subject: [PATCH] demo: c atomic --- _demo/catomic/atomic.go | 14 +++++++------- cl/_testlibc/atomic/in.go | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/_demo/catomic/atomic.go b/_demo/catomic/atomic.go index e2ab9163..9125f42d 100644 --- a/_demo/catomic/atomic.go +++ b/_demo/catomic/atomic.go @@ -1,20 +1,20 @@ package main import ( - "github.com/goplus/llgo/c" "github.com/goplus/llgo/c/sync" ) func main() { var v int64 = 100 ret := sync.FetchAndAdd(&v, 1) - c.Printf(c.Str("FetchAndAdd: %ld, new: %ld\n"), ret, v) + println("ret:", ret, "v:", v) - chg := sync.CompareAndXchg(&v, 100, 102) - c.Printf(c.Str("CompareAndXchg: %ld, 100, new: %ld\n"), v, chg) - chg = sync.CompareAndXchg(&v, 101, 102) - c.Printf(c.Str("new: %ld, CompareAndXchg: %ld, 101\n"), v, chg) + ret = sync.CompareAndXchg(&v, 100, 102) + println("ret:", ret, "vs 100, v:", v) + + ret = sync.CompareAndXchg(&v, 101, 102) + println("ret:", ret, "vs 101, v:", v) ret = sync.FetchAndSub(&v, 1) - c.Printf(c.Str("FetchAndSub: %ld, new: %ld\n"), ret, v) + println("ret:", ret, "v:", v) } diff --git a/cl/_testlibc/atomic/in.go b/cl/_testlibc/atomic/in.go index c448d16d..8c05f87a 100644 --- a/cl/_testlibc/atomic/in.go +++ b/cl/_testlibc/atomic/in.go @@ -15,4 +15,7 @@ func main() { sync.CompareAndXchg(&v, 101, 102) c.Printf(c.Str("%ld\n"), v) + + sync.FetchAndSub(&v, 1) + c.Printf(c.Str("%ld\n"), v) }