[hunchentoot-devel] printing to *standard-output* in a multithreaded environment

Zach Beane xach at xach.com
Sat Nov 24 22:22:23 UTC 2007


On Sat, Nov 24, 2007 at 05:14:07PM -0500, Andrei Stebakov wrote:
> I wonder is it save to have a macro like this:
> (defmacro with-html (&body body)
>   `(with-html-output-to-string (*standard-output* nil :prologue t)
>      , at body))
> 
> 
> with SBCL which is multithreaded.
> What happens when multiple users connect to the server and the
> requests are served using the macro above. I mean how do multiple
> threads share the *standard-output* in this case? Or should I create a
> new stream per request?

Dynamic bindings of special variables are per-thread, so they will not
interfere with each other.

Zach



More information about the Tbnl-devel mailing list