SRFI 230: Atomic Operations

by Marc Nieper-Wißkirchen

status: final (2021-11-15)

keywords: Concurrency

See also SRFI 18: Multithreading support and SRFI 226: Control Features.

Abstract

This SRFI defines atomic operations for the Scheme programming language. An atomic operation is an operation that, even in the presence of multiple threads, is either executed completely or not at all. Atomic operations can be used to implement mutexes and other synchronization primitives, and they can be used to make concurrent algorithms lock-free. For this, this SRFI defines two data types, atomic flags and atomic (fixnum) boxes, whose contents can be queried and mutated atomically. Moreover, each atomic operation comes with a memory order that defines the level of synchronization with other threads.