The Terminate() call must be made on the same thread that called
RexxCreateInterpreter originally....that's the only issue I can think
of that might prevent things from shutting down.

Rick

On Sun, Jun 7, 2009 at 10:06 AM, Rony G. Flatscher
<[email protected]> wrote:
> Currently, I have been trying to debug the following problem: unloader
> function does not run.
>
> Scenario #1: there is the BSF4Rexx.dll which contains a loader and an
> unloader function. If rexx.exe starts a Rexx program that then loads the
> BSF4Rexx.dll, the loader runs and when the Rexx program ends, the unloader
> runs.
>
> Scenario #2: there is the BSF4Rexx.dll which contains a loader and an
> unloader function. Java loads the BSF4Rexx.dll, not rexx.exe. Then Java
> creates a Rexx interpreter instance, which starts a Rexx program that then
> loads the BSF4Rexx.dll, the loader runs, *but* when the Rexx program ends,
> the unloader does not run! Looking at the different code paths to scenario
> #1, then the following can be observed:
>
> a Rexx instnace is created using the following option (the package
> definition defines the loader and unloader function), the loader function
> executes:
>
>     RexxLibraryPackage pkg;
>     pkg.registeredName   = "BSF4Rexx";
>     pkg.table            = &bsf_package_entry;
>
>     options[0].optionName= REGISTER_LIBRARY;
>     options[0].option    = (void *) &pkg; // &bsf_external_functions;  //
>     options[1].optionName=NULL;
>
> No AttachThread() nor DetachTrhead() are invoked.
>
> a Rexx script is sent from Java via JNI and the above Rexx interpreter
> instance is used to execute it using "NewRoutine()" and then
> "CallRoutine()"; here an AttachThread() and a matching DetachThread() is
> carried out.
>
> Before the Java program ends, it will use JNI to Terminate() the Rexx
> interpreter instance that got created and employed above. No AttachThread()
> nor DetachTrhead() are invoked.
>
> Going over the code-path of scenario #2 to the best of my knowledge, no Rexx
> thread exists that would be executing, hence I would expect that the
> unloader function would run.
>
> Any ideas or hints what might be the cause in scenario #2 that the unloader
> function does not run?
>
> ---rony
>
>
> ------------------------------------------------------------------------------
> OpenSolaris 2009.06 is a cutting edge operating system for enterprises
> looking to deploy the next generation of Solaris that includes the latest
> innovations from Sun and the OpenSource community. Download a copy and
> enjoy capabilities such as Networking, Storage and Virtualization.
> Go to: http://p.sf.net/sfu/opensolaris-get
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
>

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to