This adds most of the thread features visible to emacs lisp.
commit1dcacbc64721b1a4de58aa36460b0a39e766be63
authorTom Tromey <tromey@redhat.com>
Wed, 15 Aug 2012 19:09:32 +0000 (15 13:09 -0600)
committerTom Tromey <tromey@redhat.com>
Wed, 15 Aug 2012 19:09:32 +0000 (15 13:09 -0600)
tree98a07fba97225221d3bcfab970070b5a6a6564d6
parent60a9d2a7728895c1a5bfbc37c3bfa8fde35abe61
This adds most of the thread features visible to emacs lisp.

I roughly followed the Bordeaux threads API:

http://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation

... but not identically.  In particular I chose not to implement
interrupt-thread or destroy-thread, but instead a thread-signalling
approach.

I'm still undecided about *default-special-bindings* (which I did not
implement).  I think it would be more emacs-like to capture the let
bindings at make-thread time, but IIRC Stefan didn't like this idea
the first time around.

There are one or two semantics issues pointed out in the patch where I
could use some advice.
src/alloc.c
src/data.c
src/emacs.c
src/lisp.h
src/systhread.c
src/thread.c
src/thread.h