[omniORB] omni_condition::~omni_condition
Duncan Grisby
duncan at grisby.org
Fri Mar 26 12:26:23 GMT 2004
On Saturday 20 March, glblock at rockwellcollins.com wrote:
> The poaCurrentStackInsert creates the omni_thread_dummy by calling
> create_dummy(), at no time is a running_cond sema_ created for this object,
> but the omni_thread, or omni_thread_dummy, constructor does not initialize
> this value to NULL so it contains a random value. When the poa calls
> realease_dummy the omni_thread_dummy's last line will 'delete dummy' this
> seems to end up in the omni_thread destructor which calls 'delete
> running_cond'. That is where it falls apart.
>
> If I initialize the running_cond in the dummy constructor to NULL and put
> an if(running_cond) at the delete in the omni_thread destructor all is
> well.
This looks like a bug in the vxWorks omnithread implementation. I have
no way to test it, and I've never particularly looked at it to see if
it looks right. I don't know if initialising the running_cond to null
is right, or whether it should be initialised to a real condition
variable. Either way, if you give me a patch that works for you, I'll
integrate it.
> This may be the wrong approach but why both destructors are being called
> and other platforms dont see this I still need to understand.
It's not an issue for other platforms since running_cond is a vxWorks
specific thing.
Cheers,
Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
More information about the omniORB-list
mailing list