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

Tasks

cajeta.concurrent.Tasks — static task utilities layered on the fiber scheduler. withTimeout waits on an already-spawned Task<R> with a deadline, reporting completion vs. timeout via Optional<R>; on timeout the body is signalled for cooperative cancellation and drained (bodies need at least one yield point — await, channel receive, lock acquire — for cancellation to shorten the wait; pure CPU loops run to completion). runBlocking is the sync-to-async bridge, and selectReceive is Go’s select over an array of channels.

public static async int32 compute() {
    return 42;
}

public static void demo() {
    Task<int32> t = spawn compute();
    Duration budget = Duration.ofMillis(50L);
    Optional<int32> r = Tasks.withTimeout(budget, t);
    boolean finished = r.isPresent();
}

Methods

Signature
static Optional<int32> withTimeoutInt32(Duration d, Task<int32> t)int32 specialization kept for callers already pinned to it; new code should prefer the templated form
static Optional<R> withTimeout<R>(Duration d, Task<R> t) ⚑Canonical timeout API: wait on an already-spawned t until d elapses; present with the result, or empty on timeout (after cooperative cancellation)
static Optional<R> withDeadline<R>(int64 deadlineNanos, Task<R> t)Absolute-instant sibling of withTimeout: withTimeout(d, t) is withDeadline(now + d, t)
static R runBlocking<R>(() -> R body)Sync→async bridge: spawn body on the carrier pool, block the calling thread until it completes, return the value
static Optional<SelectResult<T>> selectReceive<T>(Channel<T>[] channels) ⚑Multiplexed receive: present with the lowest-index ready channel’s value, empty once every channel is closed and drained

⚑ = @EntryPoint

See also

Source: docs/stdlib/concurrent/Tasks.md · 1 min read · 231 words