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
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
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
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
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the elephant-devel