Kill-safe synchronization abstractions

Matthew Flatt*, Robert Bruce Findler

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

7 Scopus citations


When an individual task can be forcefully terminated at any time, cooperating tasks must communicate carefully. For example, if two tasks share an object, and if one task is terminated while it manipulates the object, the object may remain in an inconsistent or frozen state that incapacitates the other task. To support communication among terminable tasks, language run-time systems (and operating systems) provide kill-safe abstractions for inter-task communication. No kill-safe guarantee is available, however, for abstractions that are implemented outside the run-time system. In this paper, we show how a run-time system can support new kill-safe abstractions without requiring modification to the run-time system, and without requiring the run-time system to trust any new code. Our design frees the run-time implementor to provide only a modest set of synchronization primitives in the trusted computing base, while still allowing tasks to communicate using sophisticated abstractions.

Original languageEnglish (US)
Pages (from-to)47-58
Number of pages12
JournalACM SIGPLAN Notices
Issue number6
StatePublished - Jun 2004


  • Design
  • Languages

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design


Dive into the research topics of 'Kill-safe synchronization abstractions'. Together they form a unique fingerprint.

Cite this