I did 2 commits to the trunk development branch and to branches/2.2.
The commits are meant to address the occasional child process crash upon
interpreter deletion and to cope with the issues related to the side
effects of the [::exit] command.
The proposed solution was to introduce the new command [::rivet::exit]
which actually behaves like a special form of [::rivet::abort_page].
[::rivet::exit] sets the thread/processes internal status and before
returning to the framework Tcl_Exit is called (with the worker MPM
threads are required to exit before Tcl_Exit is called). The manual page
for this new command puts an emphasis to the fact that extensive usage
is deprecated and it's kept there just to give [::exit] a gentle
behavior in mod_rivet's environment. The core command [exit] is renamed
and replaced by a new Tcl scripts that wraps ::rivet::exit. The command
accepts an optional argument with integer value.
Also ::rivet::catch was introduced.
::rivet::catch wraps Tcl core's catch command and checks if the error
was caused by ::rivet::exit or ::rivet::abort_page. In case execution is
interrupted and handed down to AbortScript.
Both these commands are not exported when Tcl is build with
--enable-rivet-commands-export (default).
The way commands were exported in mod_rivet was wrong and has been
fixed: we now can selectively export commands from the ::rivet namespace
-- Massimo
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]