Hi everyone

After a long time I recently, though intermittently, started to dedicate
some spare time to mod_rivet. I'm working on the same infamous issue
related to the Tcl 'exit' command handling which we discussed a few
years ago. That discussion lead to a rather unsatisfactory approach. The
'exit' command forces a whole process to exit, even though in coordinate
way to allow every thread to exit before Tcl_Exit is called

I'm going to create a branch from the code in trunk in which single
thread termination can be enabled (and individual interpreters can be
managed independently) by a new configuration directive (SingleThreadExit)

The reason for doing so are:

  * in case exit is called from packages or extensions the worker and
lazy bridge are forced to behave really bad, for example refusing to
serve requests in heavy workload conditions. The presence of 'exit'
would make threaded bridges (and as a consequence threaded MPMs) not an
option for running a Rivet based application.

  * it's been surmised that exit could be a way to handle cases where an
application internal state cannot recover from a deeply inconsistent
state and deleting an interpreter can be preferable

  -- Massimo


Firma il tuo 5 per mille all’Università di Parma e aiuta così i nostri studenti 
che vogliono realizzare un’esperienza di studio all’estero - Indica 00308780345 
nella tua denuncia dei redditi.

Reply via email to