Re: Abort at program end
- From: Bowie Owens <bowie owens csiro au>
- To: Marc Siegel <mlsiegel ll mit edu>
- Cc: orbitcpp-list gnome org
- Subject: Re: Abort at program end
- Date: Wed, 26 May 2004 10:23:54 +1000
Marc Siegel wrote:
Well, the main() is so simple for this client at this stage, I 'll
just paste it below. As far as I can tell, there wasnt enough done
here to unref things additional times or anything like that, but if
you spot a problem please tell me.
The problem is that ORB::destroy() is not getting called on the ORB
object. Other ORB implementations do this for you automatically. We
don't. I'll see if I can fix this. I doubt it will be as easy as it
sounds. If you add an orb->destroy() your code will not assert. Except
you need to clean up all your references (destruct all your _var's)
before you call destroy. One way to achieve this is with blocks:
{
ORB_var orb = ...
{
Object_var obj = ...
}
orb->destroy();
}
Even easier than that is to not clean up and change the ORB_var to an
ORB_ptr. It's always a good idea to try and clean up though.
ALSO - notice that I am reading the IOR file into a string to get the
ref. This is a more minor nit, but the other ORB's support the the
file:// notation for passing IOR refs and read in the files themselves.
Can't help you there. If the C binding doesn't support it, the C++
binding doesn't either. The C++ binding is just a wrapper.
ALSO - if the .ref file is not present, this program exits with
"Aborted", which I assume means an uncaught exception. I think the
correct behavior, as exhibited by the other ORB's, is to return a
CORBA nil object so that the if-block below will function.
Yes the Aborted is going to be an uncaught exception. As for the
behaviour of string_to_object in the when there is a bad IOR passed it
looks like the right thing to do is throw a BAD_PARAM which is what MICO
does and backed up by the following doc:
http://edocs.bea.com/tuxedo/tux81/CORBA_ref/corba_67.htm
--
Bowie Owens
CSIRO Mathematical & Information Sciences
phone : +61 3 9545 8055
fax : +61 3 9545 8080
mobile : 0425 729 875
email : Bowie Owens csiro au
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]