[Openmcl-devel] Stream ... is private to ...

Edi Weitz edi at agharta.de
Fri Oct 19 05:58:21 PDT 2007


On Tue, 16 Oct 2007 17:00:27 -0600 (MDT), Gary Byers <gb at clozure.com> wrote:

> A newly-created stream is (by default) usable only by the thread
> that creates it; this has been true in all of the "1.1-pre" releases
> for the last year or so.  This is discussed in the release notes
> entry for "OpenMCL 1.1-pre-069826"; unless there are more that 98
> months in the year (I didn't get the memo), I suspect that the "98"
> is supposed to be "09".
>
> Prior to that change, all streams were implicitly created as if
> :SHARING :LOCK were ispecified; this made it possible to access
> streams from any thread but added (sometimes significant) locking
> overhead even when it wasn't in fact needed.  Changing the default
> to :SHARING :PRIVATE removes that locking overhead, but does mean
> that the (rarer) case of streams that need to be accessed from
> multiple threads have to request that a lock be used to arbitrate
> that access.
>
> (defvar *log-stream* nil)
>
> (process-run-function "setup" (lambda ()
>                                  (setq *log-stream* (open ...))))
>
> is one way to create a stream that's owned by a (soon to be
> exhausted/ defunct) process.
>
> I don't know what this means in the context of SLIME; I don't use
> SLIME, but AFAIK many other people do.

Ah, thanks for the info.  That gives me at least one thing I have to
change in Hunchentoot.  I'll also look into SLIME to see if there are
some things that should be changed.

Thanks,
Edi.



More information about the Openmcl-devel mailing list