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