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

Gary Byers gb at clozure.com
Tue Oct 16 16:00:27 PDT 2007


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.


On Tue, 16 Oct 2007, Edi Weitz wrote:

> I sent this email
>
>  http://common-lisp.net/pipermail/slime-devel/2007-October/006722.html
>
> to slime-devel yesterday, but I've just subscribed to openmcl-devel
> and I thought this might also be a place where this question could be
> answered.
>
> Thanks,
> Edi.
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list