Distributed Channels and Threads in SML
We have incorporated the Mach operating system interprocess communication
facilities into the runtime system of SML/NJ and provided a clean ML
interface to them. To shield the user from the complexities of writing IPC
interfaces, we have also supplied a program generator based on Mach's MIG.
Using these tools along with Greg Morrisett's ML threads, we have built a
distributed implementation of synchronous channels and threads based on the
Facile language model. A key feature is that a "select" or "choice" operator
is provided, allowing a thread to attempt sends or receives to several
channels at once, with only one succeeding. Implementing this in a
distributed environment is non-trivial.
Fritz Knabe <knabe@cs.virginia.edu>
Last modified: Thu Jan 30 11:30:03 EST 2003