Murali,
please note that OBJ_NEW is the macro that allocates (e.g. malloc) and
initializes an object
among other things, initialization sets the refcount to 1.
the OBJ_RETAIN and OBJ_RELEASE macro can then be used in order to
increment and decrement the refcount.
when the refcount drops to 0, the object is destroyed and freed.
the OBJ_CONSTRUCT and OBJ_DESTRUCT macros should only be used to
initialize/finalize objects
that have already been allocated.
bottom line, in order to free an object allocated with OBJ_NEW, simply
OBJ_RELEASE it,
and do *not* try OBJ_DESTRUCT it
Cheers,
Gilles
On 10/11/2016 6:24 AM, Emani, Murali wrote:
Thanks for the clarification Ralph and George.
—
Murali
From: devel <[email protected]
<mailto:[email protected]>> on behalf of George Bosilca
<[email protected] <mailto:[email protected]>>
Reply-To: Open MPI Developers <[email protected]
<mailto:[email protected]>>
Date: Monday, October 10, 2016 at 2:18 PM
To: Open MPI Developers <[email protected]
<mailto:[email protected]>>
Subject: Re: [OMPI devel] use of OBJ_NEW and related calls
These macros are defined in opal/class/opal_object.h. We are using
them all over the OMPI code base, including OPAL, ORTE, OSHMEM and
OMPI. These calls are indeed somewhat similar to an OO language, the
intent was to have a thread-safe way to refcount objects to keep them
around for as long as they are necessary.
George.
On Mon, Oct 10, 2016 at 4:18 PM, Emani, Murali <[email protected]
<mailto:[email protected]>> wrote:
Hi,
Could someone help me in understanding where the functions
OBJ_NEW/ OBJ_CONSTRUCT/ OBJ_DESTRUCT are defined in the source
code. Are these specific to OpenMPI code base?
Is the assumption correct that these calls are wrappers to create
new objects, initialize and destroy, similar to any object
oriented language.
—
Murali
_______________________________________________
devel mailing list
[email protected] <mailto:[email protected]>
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
<https://rfd.newmexicoconsortium.org/mailman/listinfo/devel>
_______________________________________________
devel mailing list
[email protected]
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
[email protected]
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel