Rick,

thank you very much for your helpful information!


On 23.01.2012 17:28, Rick McGuire wrote:

... cut ...

Can one rely on the RXTER exit handler be invoked immediately, when
terminating the Rexx-interpreter using the "context->Terminate();" to
terminate a Rexx interpreter instance ?
(This would allow me to resolve a long standing issue of callbacks from Java
to Rexx when the Rexx interpreter instance got terminated in the meantime.)
No, the RXTER exit is called for Rexx program termination (the counter
part to the RXINI exit).  A given instance may see multiple
RXTER/RXINI calls during its life, and generally, since
context->Terminate() will only work if there are no active threads,
RXTER will NOT get called as a result of that action.

Looking at the description of RXINI (p.135, rxprog.pdf):
"Initialization processing. This exit is called as the last step of Rexx program initialization."

subfunction RXINIEXT: "Initialization exit."
"When called: Before the first instruction of the Rexx procedure is interpreter."

and of RXTER
"Termination processing."

subfunction RXTEREXT: "Termination exit."
"When called: After the last instruction of the Rexx procedure has been interpreterd." 

When would RXINI/RXTER called then, if also during the lifetime of a Rexx interpreter instance ?

Do these exits also see other Rexx interpreter instances? Or could it be that setting up and closing routines and the like cause these exits to be called?


Would there be any foreseeable/expected problems if the exit handlers would
be implemented by Java (assuming that the forwarding from C++ to Java and
back is correctly implemented)?
No forseeable problems...which does not mean there aren't any.
8)

Again, thank you very much, indeed!

---rony