Subject: Re: Threads
From: Erik Naggum <>
Date: 2000/03/30
Newsgroups: comp.lang.lisp
Message-ID: <>

* Andrew Cooke <>
| - If I understood an earlier topic correctly, assigning a value to a
| dynamic scoped variable using let copies the original value to a safe
| place for the scope of the let before replacing it.  In a multi-threaded
| environment this implies that the value will change for all threads - is
| that correct?

  let doesn't assign values, it creates a new binding.  how it is actually
  implemented underneath has _some_ implications for the rest of the
  system, but no matter how it is implemented, you should not assume that
  the implementation violates the semantics.  this implies that the new
  binding is local to the process (thread), since the other processes
  (threads) are not in the dynamic scope of the new binding.