Concurrent Cycle Collection: Garbage-Collected Smart Pointers in Rust for Scheme

2024-12-13

This article details the implementation of a concurrent cycle collector in Rust for garbage-collected smart pointers (Gc) within a Scheme interpreter. Gc functions similarly to Arc>, supporting interior mutability, cloning, and sending across threads. The article thoroughly explains the implementation of Gc, including thread-safe interior mutability using semaphores and read/write locks, and the implementation details of concurrent cycle collection based on the Bacon and Rajan algorithm. This includes the Trace trait, cycle detection, and mechanisms for handling concurrent modifications.

Read more