Posted Dec 13, 2007 13:07 UTC (Thu) by davecb (subscriber, #1574)
Parent article: Simpler syslets
At least one experimental lisp had a "future"
function, which took a complete function call
and returned a function to call at some convenient
later time to get the results of the function.
void *later = future(function_to_run, (args_to_pass));
Future would start the function running
asynchronously with code to catch its
The caller to future would eventually call "later"
and if the results were already there, would return
with them. If not, it would block until they
I found this elegant, and note that it separates
indirection and threadlet-ing.