On 02/16/2018 08:17 PM, Harald Oehlmann wrote:
Hi Massimo,
thank you for the reply !
About the compiler: the log file says:
gcc-4.8.2-16
You find most of this information at the top of the log file when
packages are installed.
You also have the configure options with a warning:
./configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib
--mandir=/usr/share/man --infodir=/usr/share/info --with-tcl=/usr/lib64
--with-apache-version=2 --with-tclsh=/usr/bin/tclsh --with-apache=/usr
--with-rivet-target-dir=/usr/lib64/tcl8.5/apache2-mod_rivet3.0.1
--with-apxs=/usr/bin/apxs --with-pic --disable-rpath
[ 55s] configure: WARNING: unrecognized options: --with-apache-version
Later on, there is the warning caused by my bad experiences:
configure: WARNING:
--enable-threads requested, but building against a Tcl that is NOT
thread-enabled. This is an OK configuration that will also run in
a thread-enabled core.
Thank you,
Harald
I'm attaching here a patch that should fix the compilation issue. The
function is still unused but I'll keep it hoping one day we'll be able
to treat threads running Tcl interps as real lightweight processes and
dispose and recreate them separately from their process.
still to be committed to the repository
-- Massimo
Index: src/mod_rivet_ng/worker_prefork_common.c
===================================================================
--- src/mod_rivet_ng/worker_prefork_common.c (revision 1824558)
+++ src/mod_rivet_ng/worker_prefork_common.c (working copy)
@@ -272,8 +272,6 @@
void Rivet_ProcessorCleanup (void *data)
{
rivet_thread_private* private = (rivet_thread_private *) data;
- Tcl_HashSearch* searchCtx;
- Tcl_HashEntry* entry;
int i;
rivet_server_conf* rsc = RIVET_SERVER_CONF(module_globals->server->module_config);
@@ -293,24 +291,14 @@
Tcl_SetStdChannel(NULL,TCL_STDOUT);
/* there must be always a root interpreter in the slot 0 of private->interps,
- so there is always need to run at least one cycle here */
+ so we always need to run this cycle at least onece */
i = 0;
do
{
- /* cleaning the cache contents and deleting it */
+ RivetCache_Cleanup(private,private->ext->interps[i]);
- searchCtx = apr_pcalloc(private->pool,sizeof(Tcl_HashSearch));
- entry = Tcl_FirstHashEntry(private->ext->interps[i]->objCache,searchCtx);
- while (entry)
- {
- Tcl_DecrRefCount(Tcl_GetHashValue(entry)); /* Let Tcl clear the mem allocated */
- Tcl_DeleteHashEntry(entry);
-
- entry = Tcl_NextHashEntry(searchCtx);
- }
-
if ((i > 0) && rsc->separate_channels)
Rivet_ReleaseRivetChannel(private->ext->interps[i]->interp,private->channel);
---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org