atom #
atom provides atomic operations for integers, floats, and strings.
Functions #
new_int(value=0) -> AtomicInt
#
create a new AtomicInt with an optional initial value
Parameters #
| name | type | description |
|---|---|---|
value | int | initial value, defaults to 0 |
Examples #
basic
create a new AtomicInt with default value
load("atom", "new_int")
ai = new_int()
ai.inc()
print(ai.get())
# Output: 1
with value
create a new AtomicInt with a specific value
load("atom", "new_int")
ai = new_int(42)
ai.add(42)
print(ai.get())
# Output: 84
new_float(value=0.0) -> AtomicFloat
#
create a new AtomicFloat with an optional initial value
Parameters #
| name | type | description |
|---|---|---|
value | float | initial value, defaults to 0.0 |
Examples #
basic
create a new AtomicFloat with default value
load("atom", "new_float")
af = new_float()
print(af.get())
# Output: 0.0
with value
create a new AtomicFloat with a specific value
load("atom", "new_float")
af = new_float(3.14)
print(af.get())
# Output: 3.14
new_string(value="") -> AtomicString
#
create a new AtomicString with an optional initial value
Parameters #
| name | type | description |
|---|---|---|
value | string | initial value, defaults to an empty string |
Examples #
basic
create a new AtomicString with default value
load("atom", "new_string")
as = new_string()
print(as.get()) # Output: ""
with value
create a new AtomicString with a specific value
load("atom", "new_string")
as = new_string("hello")
print(as.get())
# Output: "hello"
Types #
AtomicInt
#
an atomic integer type with various atomic operations
Methods
get() -> int
#
returns the current value
set(value: int)
#
sets the value
cas(old: int, new: int) -> bool
#
compares and swaps the value if it matches old
add(delta: int) -> int
#
adds delta to the value and returns the new value
sub(delta: int) -> int
#
subtracts delta from the value and returns the new value
inc() -> int
#
increments the value by 1 and returns the new value
dec() -> int
#
decrements the value by 1 and returns the new value
AtomicFloat
#
an atomic float type with various atomic operations
Methods
get() -> float
#
returns the current value
set(value: float)
#
sets the value
cas(old: float, new: float) -> bool
#
compares and swaps the value if it matches old
add(delta: float) -> float
#
adds delta to the value and returns the new value
sub(delta: float) -> float
#
subtracts delta from the value and returns the new value
AtomicString
#
an atomic string type with various atomic operations
Methods
get() -> string
#
returns the current value
set(value: string)
#
sets the value
cas(old: string, new: string) -> bool
#
compares and swaps the value if it matches old