Higher-Order and Symbolic Computation

, Volume 18, Issue 3, pp 327–354

Integrating User-Level Threads with Processes in Scsh


DOI: 10.1007/s10990-005-4879-2

Cite this article as:
Gasbichler, M. & Sperber, M. Higher-Order Symb Comput (2005) 18: 327. doi:10.1007/s10990-005-4879-2


Scsh, the Scheme shell, enables concurrent system programming with portable user-level threads. In scsh, threads behave like processes in many ways: each thread receives its own set of process resources; like Unix processes, new threads can inherit resources from the creating thread. The combination of scsh's interface to the POSIX API with user-level threads creates a number of design and implementation challenges: Scsh's abstractions for managing process resources raise interesting modularity issues, particularly in connection with first-class continuations. Scsh also provides an interface to the fork system call; its implementation must avoid common pitfalls that arise with a user-level thread system. This paper describes the design and implementation of the relevant abstractions and discusses the implications for programming-language and system design.


threads Unix Scheme continuations 

Copyright information

© Springer Science + Business Media, Inc. 2005

Authors and Affiliations

  1. 1.Universität TübingenTübingenGermany
  2. 2.TübingenGermany