[omniORB] omniORB in C++ DLL called by (embarrassment) VB
agonne - Andrew Gonnet
AGONNE@acxiom.co.uk
Tue, 20 Jul 1999 14:03:21 +0100
Hi,
A small problem:
Background:
Client running omniORB 2.7.1 on NT 4.0 Intel PC. It is a VB program
which calls C functions in a C/C++ DLL which in turn call the
initialisation and my application Corba methods.
Implementation and omniNames running on "Tru64" unix, also omniORB
2.7.1
Problem:
When running the program from the VB IDE, when the VB program
finishes, and the VB system attempts to return to the IDE, it hangs.
This problem does not occur if I compile the VB program and run the
exe, this exits cleanly.
I'm guessing this is because VB runs a single process, interpreting
the VB code from the same thread as the IDE is run from. This means
that when a VB program "finishes" the process itself doesn't finish,
so for some reason perhaps the child threads in the ORB are not
shutdown properly (although the DLL write-lock is released and I can
write a new version from C++ IDE if I wish).
I have cut the program down to just ORB_init and this problem still
occurs.
I would like to shut everything down by calling the "ORB::shutdown"
and "ORB::destroy" methods (as per the Corba V2.3 spec) but
unfortunately these are not implemented in omniORB 2.7.1.
Has anyone else also had this problem?
Does anyone have any ideas or suggestions?
Thanks,
Andrew Gonnet.