[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

why asyncs were created

From: Tom Lord
Subject: why asyncs were created
Date: Mon, 2 Sep 2002 15:55:31 -0700 (PDT)

Since there is talk of removing the async abstraction, I thought I
would mention, just to provide information, why it was added in the
first place.

The kernel has a built-in facility for interrupting a process, pushing
a new call frame onto a stack, and invoking some function -- handling
a return or longjmp from that function specially -- and treating
interrupts specially while that function runs.

That's a useful facility, but not one that has a unique natural
mapping into RnRS scheme.   

Asyncs were designed to model that facility while reconciling it with
the restrictions against executing arbitrary Scheme code at arbitrary

The farther Scheme signal handling is removed from some abstraction
like asyncs, the less well the corresponding kernel facility is
reflected in the language.

Having designed system asyncs, user-defined asyncs were, I felt, a
natural and easy generalization.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]