summaryrefslogtreecommitdiff
path: root/doc/lispref/threads.texi
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-12-23 15:14:19 -0700
committerTom Tromey <tromey@redhat.com>2012-12-23 15:14:19 -0700
commit63d535c829a930207b64fe733228f15a554644b1 (patch)
tree03ed0da035fec34b8bc94041255435c3fbed99fe /doc/lispref/threads.texi
parent0e10ed2c37cffbad60f61ee7fafde07ad05016f6 (diff)
downloademacs-63d535c829a930207b64fe733228f15a554644b1.tar.gz
emacs-63d535c829a930207b64fe733228f15a554644b1.tar.bz2
emacs-63d535c829a930207b64fe733228f15a554644b1.zip
mention let bindings and lack of other ways to rewind
Diffstat (limited to 'doc/lispref/threads.texi')
-rw-r--r--doc/lispref/threads.texi7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/lispref/threads.texi b/doc/lispref/threads.texi
index d7e4b0ab2ae..9c333546040 100644
--- a/doc/lispref/threads.texi
+++ b/doc/lispref/threads.texi
@@ -31,6 +31,13 @@ local variables are not---a dynamic @code{let} binding is local. Each
thread also has its own current buffer (@pxref{Current Buffer}) and
its own match data (@pxref{Match Data}).
+ Note that @code{let} bindings are treated specially by the Emacs
+Lisp implementation. There is no way to duplicate this unwinding and
+rewinding behavior other than by using @code{let}. For example, a
+manual implementation of @code{let} written using
+@code{unwind-protect} cannot arrange for variable values to be
+thread-specific.
+
In the case of lexical bindings (@pxref{Variable Scoping}), a
closure is an object like any other in Emacs Lisp, and bindings in a
closure are shared by any threads invoking the closure.