Asynchronous exceptions in Haskell

  • Authors:
  • Simon Marlow;Simon Peyton Jones;Andrew Moran;John Reppy

  • Affiliations:
  • Microsoft Research, Cambridge;Microsoft Research, Cambridge;Oregon Graduate Institute;Bell Labs, Lucent Technologies

  • Venue:
  • Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Asynchronous exceptions, such as timeouts are important for robust, modular programs, but are extremely difficult to program with — so much so that most programming languages either heavily restrict them or ban them altogether. We extend our earlier work, in which we added synchronous exceptions to Haskell, to support asynchronous exceptions too. Our design introduces scoped combinators for blocking and unblocking asynchronous interrupts, along with a somewhat surprising semantics for operations that can suspend. Uniquely, we also give a formal semantics for our system.