docs / stdlib / concurrent

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

aot

  1. Components
  2. Scope
  3. Scoped

codec

  1. Base32
  2. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. Fiber
  5. FiberLocal
  6. Lock
  7. Mutex
  8. RwLock
  9. Semaphore
  10. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. NotProvidedException
  4. RecoverableException
  5. ScopedBuildFailedException
  6. ScopeNotActiveException
  7. Throwable
  8. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. DefaultHasher
  2. Hash
  3. SipHash
  4. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. BufferPool
  2. ByteBuffer
  3. IpAddress
  4. Server
  5. ServerBuilder
  6. SocketAddress
  7. TcpListener
  8. TcpStream
  9. UdpSocket

io / net / dns

  1. Dns

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. CompressStream
  3. DecompressionLimitException
  4. Decompressor
  5. Encoder
  6. Schema
  7. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream
  4. KernelTimer

xpu / mesh

  1. MeshSimplifier

AtomicInt64

cajeta.concurrent.AtomicInt64 — atomic 64-bit signed integer: a lock-free int64 cell that multiple threads can read, write, and update without tearing or data races. Same design as AtomicInt32 (a heap cell plus compiler-emitted inline LLVM atomic instructions); the 64-bit variant matters for sequence numbers, timestamps, and generation counters. The default load/store/fetchAdd/compareAndSet use sequentially consistent ordering; the named *Relaxed/*Acquire/*Release variants opt into weaker guarantees.

AtomicInt64 seq = heap AtomicInt64(1000000000000L);
int64 prior = seq.fetchAdd(1L);   // returns the prior value
int64 n = seq.load();             // 1000000000001

Methods

Signature
AtomicInt64(int64 initial) ⚑Creates an atomic cell seeded with initial
int64 load()Atomically reads the current value (sequentially consistent)
void store(int64 v)Atomically overwrites the value (sequentially consistent)
int64 fetchAdd(int64 delta)Atomically adds delta; returns the value held before the add
boolean compareAndSet(int64 expected, int64 desired)Sets desired only if the value equals expected; true on success
int64 loadRelaxed()load with relaxed ordering: atomicity only, no synchronization
int64 loadAcquire()load with acquire ordering: pairs with a release store
void storeRelaxed(int64 v)store with relaxed ordering: atomicity only
void storeRelease(int64 v)store with release ordering: publishes prior writes to acquiring readers
int64 fetchAddRelaxed(int64 delta)fetchAdd with relaxed ordering; returns the prior value, wraps on overflow
boolean compareAndSetAcquire(int64 expected, int64 desired)compareAndSet with acquire ordering on success; true if it swapped

⚑ = @EntryPoint

See also

Source: docs/stdlib/concurrent/AtomicInt64.md · 1 min read · 248 words