I've been thinking about using GNU pth to implement threads in Emacs. GNU pth only does cooperative threading, and has special non-blocking versions of some syscalls (blocking the current thread instead of the whole process). Ideally this would mean that existing (i.e. non-yielding) Lisp code would not be affected, and network code could be run in a background thread.
The greatest obstacle to this seems to be shallow binding - you'd have to unwind one thread's stack and rewind another's when switching threads. Maybe there's an easier way that I don't see... Magnus _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel