bt:make-thread uses a funny table with custom bindings to initialize standardized globals like *print-readably*.
This seriously interferes with applications using Hunchentoot.
I have already posted to bordeaux-thread-devel stating that the new thread should probably inherit the values from the parent thread, but things are slow there I think.
FYI we now have this in Weblocks to work around at least the aforementioned variable (which causes the biggest problem because a lot of ~S format directives suddenly become trip mines):
(defmethod process-connection ((acceptor weblocks-acceptor) socket) (let ((*print-readably* nil)) (call-next-method)))
Hunchentoot should probably provide a similar workaround until the thing is sorted out on the BT side.
Other rebindings seem to be pretty harmless in comparison, but YMMV. :(
Leslie
On Thu, Feb 26, 2009 at 6:46 PM, Leslie P. Polzer sky@viridian-project.de wrote:
Hunchentoot should probably provide a similar workaround until the thing is sorted out on the BT side.
I'd rather not have that. I'd prefer to wait until Bordeaux Threads has sorted that out instead of adding a kludge. Until then, user code should take care of this itself.
Thanks for the info, though, I didn't know that.
Edi.
On Thu, Feb 26, 2009 at 18:46, Leslie P. Polzer sky@viridian-project.de wrote:
bt:make-thread uses a funny table with custom bindings to initialize standardized globals like *print-readably*.
Can you be more specific about this? I have not found any funny tables in my copy of bordeaux-threads, and I am also wondering why *print-readably* would be non-nil in the first place. Maybe the global value has been messed with?
-Hans
Can you be more specific about this? I have not found any funny tables in my copy of bordeaux-threads, and I am also wondering why *print-readably* would be non-nil in the first place. Maybe the global value has been messed with?
It's a pretty recent change in BT. See src/bordeaux-threads.lisp:108*.
The table is there, I'll leave it to yourself to judge whether it's funny or not. ;)
Leslie
* my copy of BT is at
Sun Jan 11 03:04:10 CET 2009 Stelian Ionescu sionescu@common-lisp.net * Use "Anonymous" as default thread name.
On Fri, Feb 27, 2009 at 14:07, Leslie P. Polzer sky@viridian-project.de wrote:
Can you be more specific about this? I have not found any funny tables in my copy of bordeaux-threads, and I am also wondering why *print-readably* would be non-nil in the first place. Maybe the global value has been messed with?
It's a pretty recent change in BT. See src/bordeaux-threads.lisp:108*.
I concur with Edi here: Please have the BT people fix that.
-Hans