[elephant-devel] run-elephant-thread

Robert L. Read read at robertlread.net
Sat Jan 20 20:06:40 UTC 2007


Ian is working on this; I think significant progress will be made when
he finishes his check-in.

The biggest problem is that serializer uses globals in such a way that
it is not thread-safe;
Ian is specifically rewriting that.

I personally solve problem by using SBCL mutexes around the
serialize/deserialize code, 
but I have not committed that code, since it is highly SBCL-specific,
and in fact I don't 
know of a good way to do locking portably.

The CL-SQL backend also has a problem with multi-threading.  I have a
local, SBCL solution
that uses a hash-map to create a separate connection for each thread in
which a controller
is used.  I have not committed this for the same reasons (and a touch of
laziness.)

So to answer your question fully:

1)  For BDB-based usage, we need to wait for Ian to finish the work that
currently is underway.
2)  For CL-SQL based usage, we need some sort of portable thread/lock
solution, or at least
a switch that says "for SBCL, do this", and we need for me, or somebody
else, to supply that 
code.

Can you recommend a portable approach to the threading problem?   I
personally only use SBCL,
and I think Ian uses Allegro.  We can stand on our heads if we have to
to keep SBCL both 
portable and threadsafe, but I need expert advice on dealing with this.

And, BTW, I doubt the serializer was ever threadsafe.  If you use BDB,
you can go along time
before you ever notice a problem; but of course we want an enterprise-
quality system and so 
must have complete thead-safety eventually.




On Sat, 2007-01-20 at 20:42 +0100, Gábor Melis wrote:

> The fine manual at 
> http://common-lisp.net/project/elephant/doc/Threading.html says that 
> run-elephant-thread is broken but leaves the consequences to my 
> imagination.
> 
> Considering the comment about specials for buffers and such as well, my 
> reading is that there is no official way of using elephant from 
> multithreaded code.
> 
> Is that right?
> What needs to be done to make run-elephant-thread safe again?
> 
> Gabor Melis
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20070120/adb97d75/attachment.html>


More information about the elephant-devel mailing list