diff options
Diffstat (limited to 'libgo/go/sync/cas.c')
-rw-r--r-- | libgo/go/sync/cas.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libgo/go/sync/cas.c b/libgo/go/sync/cas.c new file mode 100644 index 0000000..ffcd133 --- /dev/null +++ b/libgo/go/sync/cas.c @@ -0,0 +1,15 @@ +/* cas.c -- implement sync.cas for Go. + + Copyright 2009 The Go Authors. All rights reserved. + Use of this source code is governed by a BSD-style + license that can be found in the LICENSE file. */ + +#include <stdint.h> + +_Bool cas (int32_t *, int32_t, int32_t) asm ("libgo_sync.sync.cas"); + +_Bool +cas (int32_t *ptr, int32_t old, int32_t new) +{ + return __sync_bool_compare_and_swap (ptr, old, new); +} |