This feature allows a channel to be used as a means for synchronizing threads. Limbo programs are organized into logical blocks called modules , which contain declaration and implementation files. A module declaration file contains the module's exported types, constants, and functions and defines the interface to the implementation. A module implementation file provides the actual code. A module implementation can have additional types, constants, data, and functions that are considered private.
Programs explicitly load modules at run time.
This allows instances of modules to be passed into and out of functions, as well as stored. This statement accepts a single parameter, which provides a function that the new thread executes. In Limbo, threads are extremely lightweight and are intended to be treated as an inexpensive, primitive resource that an application can use to accomplish a task. The aforementioned alt statement allows an application's thread to simultaneously operate on multiple channels. This simple statement is a powerful feature of the Limbo language and greatly aids in creating robust and efficient concurrent applications.