[Bordeaux-threads-devel] (initial-bindings *default-special-bindings*)
Martin Simmons
martin at lispworks.com
Tue Mar 31 19:11:03 UTC 2009
>>>>> On Mon, 30 Mar 2009 15:46:08 +0200, Stelian Ionescu said:
>
> On Fri, 2009-03-20 at 20:00 +0000, Martin Simmons wrote:
> > Sorry, there is confusion about what "bound" means here, since LET and SETQ
> > both make a symbol bound, but they behave differently with multithreading. I
> > think it is worth stating what we expect to happen.
> >
> > Let's use the term thread-specific binding for what is establish by LET (and
> > also PROGV and the new Bordeaux-threads default bindings). Each symbol also
> > has a global binding which is seen by all threads that have no thread-specific
> > binding. AFAIK, all implementations support this and using SETQ with a symbol
> > that has a thread-specific bindings in the current thread will not affect
> > other threads.
> >
> > I don't want the thread-specific bindings for the I/O variables of the current
> > thread to be inherited by a new thread. That's the capturing problem.
> >
> > Moreover, I think there should be no thread-specific bindings for the I/O
> > variables in the threading library, i.e. their global bindings should be
> > visible and changable. If an application wants to change the value, then it
> > should rebind it with LET, not assume that it can use SETQ.
> >
> > I hope that makes my position clearer.
>
> Ok, I yield to your arguments :). *default-special-bindings* now
> defaults to NIL and its previous value is in *standard-io-bindings*
Great, thanks!
--
Martin Simmons
LispWorks Ltd
http://www.lispworks.com/
More information about the bordeaux-threads-devel
mailing list