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.