Subcontinuations. Robert Hieb, R. Kent Dybvig, Claude W. Anderson. Lisp and Symbolic Computation 1993.

...traditional continuations are not useful in the presence of concurrency, because the notion of the rest of the computation represented by a continuation does not in general make sense...

Subcontinuations may be used to control tree-structured concurrency by allowing nonlocal exits to arbitrary points in a process tree and allowing the capture of a subtree of a computation as a composable continuation for later use.

Strangely enough this paper wasn't discussed here, even though it was mentioned in the discussion group a long time ago. Now's the time to rectify this omission.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Distributed Sagas / Vector Clock

Ayende Rahien had an interesting series of posts about how he created Rhino DHT to create a concurrent backing for distributed Sagas.

His ideas seems very similar to the notions Subcontinuations presents; both create "artifact trails" for previous computations.

In both cases, the there's still enormous questions for how to manage and correlate long artifact trails. Especially in a distributed context, vector trails can be helpful in providing serializability and flow information.