You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by Massimo Manghi <ma...@unipr.it> on 2014/06/23 11:29:46 UTC

Tcl channel optimization in mod_rivet

In the slow process of reorganizing mod_rivet (and its components) in 
order to make it more tractable for a code refactoring I realized the 
way mod_rivet handle the Tcl Channels was suboptimal. With a prefork MPM 
a child process can handle only a request at a time, therefore there is 
no need for replicating the creation of the Tcl channel for each 
interpreter when virtual hosts require separate interpreters: Tcl 
channels are registered to an interpreter but are created independently 
and are destroyed when by calling Tcl_UnregisterChannel their reference 
count drops to 0

I will attach a patch which applied to the current trunk code makes 
mod_rivet create and manage a single channel. To be tested with virtual 
host private interpreters (SeparateVirtualInterps)

the apache benchmark program reports no errors (with a concurrency 20 
and 500 requests)

Anyone with a multiple virtual hosts test system is kindly invited to 
try this patch, thanks

  -- Massimo