How to Solve Santa Claus Concurrency Puzzle with a Model Checker
Summary
The article presents a hands-on exploration of solving the Santa Claus concurrency puzzle using a model checker (SPIN) and Promela. It demonstrates identifying failure modes in naive solutions, formalizing correctness with safety and liveness properties, and introduces a room-based design to separate marshalling from delivering. The piece also covers core model-checking concepts and notes a Go implementation of the room-based model.