[cl-muproc-devel] Re: Bordeaux-Threads usage
Klaus Harbo
klaus at mu.dk
Wed Oct 11 09:56:17 UTC 2006
Greg Pfeil wrote:
> Hey, I was about to start using CL-MUPROC, and happily noticed that it's
> using the Bordeaux-Threads library I wrote. However, it only seems to be
> using it for SBCL and CMUCL. My aim is for it to be an extremely
> portable threading layer, so I'm interested in knowing what problems you
> may have had with it on on other platforms and any other functionality
> you feel would be necessary in such a library (EG, I see you use
> PROCESS-ALIVE-P, which Bordeaux-Threads doesn't currently supply).
>
> Also, if there are any general suggestions about the library, I'd also
> be happy to hear those.
>
> In any case, I'm excited to start using CL-MUPROC. Thanks.
>
Hi Greg --
I sorry for taking so long to respond -- I'm afraid Thunderbird deemed your mail
to be Spam so I didn't see until I was cleaning out folders this morning!
cl-muproc started out on Allegro (while we were evaluating that product), then
moved to Lispworks. My focus from the start was squarely on functionality, so I
paid no attention to implementation independence at all. When cl-muproc was
open sourced, I realized that I could help adoption by making porting easier, so
I decided simply to isolate all LW-specific code in a separate layer. That way
it would be clear for potential porters what was needed to make a port.
I believe it was Vladimir Sekissov who introduced bordeaux-threads while working
on the the SBCL/CMUCL port. Overall, I feel that cl-muproc portability model is
fine as it is, that is that there is a clear separation between platform
INdependent and dependent code. If you look at the code, you'll see that the
layer isolating the two is really simple, which is good. I'm glad that
bordeaux-threads exists -- it makes porting like this much easier -- and
wouldn't mind that more ports relied on it. However, I also think it is a good
idea for cl-muproc to have its own isolation layer, so that a port does not have
to use bordeaux-threads.
Wrt. process-alive-p it is used by the supervisor in cl-muproc, which absolutely
needs to be able to detect if a process has terminated. Reading
muproc-sbcl.lisp and muproc-cmucl.lisp it seems clear that the porting effort of
this particular call was not too great, even if it was not part of
bordeaux-threads... ;-) However, if your ambition for bordeaux-threads is that
it be possible to use the same bordeaux-based MP code on many implementations,
then you should perhaps consider adding calls like process-alive-p. cl-muproc's
supervisor certainly needs it.
Thanks for writing, good luck with cl-muproc! Any feed-back wrt. your
experiences using muproc, good or bad, would be appreciated...
best regards,
-Klaus.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3368 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://mailman.common-lisp.net/pipermail/cl-muproc-devel/attachments/20061011/06dd746e/attachment.bin>
More information about the cl-muproc-devel
mailing list