[slime-devel] Multi-threaded CCL with SLIME issues

sblist at me.com sblist at me.com
Sat Jan 10 06:45:15 UTC 2009


On 9-Jan-09, at 8:50 AM, Helmut Eller wrote:
>>
>> The debugger is globally installed, and the io streams are globally
>> redirected from within SWANK threads, aren't they?
>
> Yes.
>
> Are you implying that threads created with
> :use-standard-initial-bindings=nil can modify
> ccl::standard-initial-bindings (and hence the bindings for the threads
> created by the webserver) simply by setting *standard-output*?
> That could be.
>
> Helmut.

Here is Gary's reply on openmcl-devel on how to set the initial or
`static' bindings of such variables rather than the thread-local
binding. Perhaps this is enough to obtain the desired behavior?

Gary Byers wrote:

"If I understand the question correctly, the answer is that

(CCL::%SET-SYM-GLOBAL-VALUE sym value)

behaves like CL:SET, only it ignores any thread-local/dynamic
bindings of the variable and modifies the global/static binding.

The standard stream variables (*TERMINAL-IO*, etc.) are bound
in each thread (well, each thread that's created by the lisp);
the initial values of these bindings are the static values
of the variables.  So, setting the global/static value of
*TERMINAL-IO* would affect the value of *TERMINAL-IO* in any
subsequently-created threads."

- Scott




More information about the slime-devel mailing list