Forum OpenACS Improvement Proposals (TIPs): TIP #88 (rejected): provide support for libthread in oacs

The purpose of this tip is to provide support of tcl's libthread in
oacs.

libthread is the standard thread library of tcl and maintained
on sourceforge
http://sourceforge.net/project/showfiles.php?group_id=10894&package_id=10438

libthread provides an upward compatible threading interface for the
aolserver with additional functionality (e.g. thread pools,
thread::mutex, persistent nsv). Libthread can be easily added to the
aolserver + oacs with the standard configure/make/make install cycle
(see http://media.wu-wien.ac.at/download/README.xotcl-oacs) and is
know to work reliably with openacs and dotlrn on production sites. The
author of libthread is Zoran Zoran Vasiljevic, who is member of the
aolserver core team.

By accepting this TIP it will be easy to use tcl extensions using threads
or packages based on libthread in an aolserver installation. A sample
application is the xotcl request monitor
http://openacs.org/forums/message-view?message_id=181979
that provides performance statistics, request blocking and user tracking.
It contains a value added version of who-is-online (the function
to compute the currently active users is more than
10 times faster than the original version). Recent versions contain
as well a connection thread monitor showing currently running requests
with their elapsed time, that does not use ns_server and therefore does
not crash under load.

providing support means to include it in a c-source code
tarball together with the other c-modules, to provide in
the best of all possible worlds a toplevel configure script and to provide an optional entry in the modules section of the sample config.tcl-file

Who will prepare it for installation? Who will write the "toplevel configure script"? This is independent of AOLserver source code, correct? So it would add another external source during the installation. Would it also complicate packaged binary installs? If so, who will be responsible for creating and maintaining debian, redhat, etc packages?
the toplevel configure for installing aol-server+modules will
require some fiddling around, but has nothing to do with
using or using not not libthread (it was meant as a
nice-to-have feature for the installation in general).

On the other hand, adding five lines to the install notes and
providing a (maybe commented-out line) for the sample
aolserver startup file is no big effort. i could certainly
help with that...

I haven't actually got around to using it with AOLserver myself yet, but libthread (AKA the Tcl Threads Extension) is reportedly fully backwards compatible with but superior to the native AOLserver thread and nsv implementations. This is good stuff, its extended nsv/tsv API is definitely more powerful than the older AOLserver equivalents. And its nice that it works both in AOLserver and in tclsh.

The Thread Extension's primary author, Zoran, uses it extensively with both AOLserver and tclsh, so installing it for use with AOLserver should be trivial.

I suggested in Dec. 2004 that AOLserver ship stock with the Tcl Threads Extension, but so far that's been basically ignored.

Oh, I install it all the time and it is working from our automated installation scripts for AOLserver (http://cognovis.de/entwickler/tips/aolserver/install/). You just have to add the libthread loading into the config.tcl file.
Oh, and my above statement probably means: APPROVE and I will do the docs.
Ok. Not enough support for this. If someone is interested to use and install libthread look at http://cognovis.de/entwickler/tips/aolserver/install/.

The script there will install libthread.