AsyncSemaphore import { AsyncSemaphore } from "destack:async"; Asynchronous counting semaphore. export class AsyncSemaphore { state: Atomic; constructor(permits: usize); get availablePermits(): usize; acquire(): Task; tryAcquire(): AsyncSemaphorePermit | undefined; acquireMany(count: usize): Task; tryAcquireMany(count: usize): AsyncSemaphorePermit | undefined; release(count?: usize): void; } language/library/src/async/semaphore.ds:8:46 Members state: Atomic The available permit count. constructor(permits: usize) Create an async semaphore with permits available permits. get availablePermits(): usize Return the number of immediately available permits. acquire(): Task Acquire one permit by suspending the current task if needed. tryAcquire(): AsyncSemaphorePermit | undefined Try to acquire one permit without suspending. acquireMany(count: usize): Task Acquire count permits by suspending the current task if needed. tryAcquireMany(count: usize): AsyncSemaphorePermit | undefined Try to acquire count permits without suspending. release(count?: usize): void Release count permits.