Luke Gorrie luke@bluetail.com writes:
But before more hacking, I'd appreciate some words of advice on what thread primitives we can reasonably assume the Lisps will support. Any takers?
Most Lisps will, one way or another, support the stuff in CLIM-SYS. You should note, however, that some of them support some of it badly - specifically, when your Lisp threads are scheduled by the OS kernel it's difficult to implement PROCESS-WAIT (and other functions that wait for an arbitrary predicate) except by doing something rather akin to busy-waiting.
Mutexes should be pretty safe. Alternatively, specify a higher-level interface (a message queue, or something) and let each backend implement it in whatever fashion makes sense. SBCL has condition variables, OpenMCL has counting semaphores (I think), etc etc.
-dan