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 <devel-boun...@lists.open-mpi.org
<mailto:devel-boun...@lists.open-mpi.org>> on behalf of George Bosilca
<bosi...@icl.utk.edu <mailto:bosi...@icl.utk.edu>>
Reply-To: Open MPI Developers <devel@lists.open-mpi.org
<mailto:devel@lists.open-mpi.org>>
Date: Monday, October 10, 2016 at 2:18 PM
To: Open MPI Developers <devel@lists.open-mpi.org
<mailto:devel@lists.open-mpi.org>>
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 <ema...@llnl.gov
<mailto:ema...@llnl.gov>> 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
devel@lists.open-mpi.org <mailto:devel@lists.open-mpi.org>
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
<https://rfd.newmexicoconsortium.org/mailman/listinfo/devel>
_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel