Racket’s synchronization toolbox spans four layers:
synchronizable events —
a general framework for synchronization;
a primitive that can be used, in principle, to build most other kinds of synchronizable events (except the ones that compose events); and
a simple and especially cheap primitive for synchronization.
future semaphores —
a simple synchronization primitive for use with futures.
220.127.116.11 Contracts and Impersonators on Asynchronous Channels