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@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel