On Mar 8, 2013, at 6:56 AM, George Bosilca <bosi...@icl.utk.edu> wrote:

> Correctly used, OBJ_NEW / OBJ_CONSTRUCT / OBJ_DESTRUCT, are not a bad set of 
> macros. When an object is not needed and known not to be refereed anymore, it 
> can safely be OBJ_DESTRUCT despite the fact that its reference count is not 
> 1. Otherwise, in all BTLs we will have to put all fragments back in the right 
> place, remove them from all lists, before calling the destructor. In other 
> words, no collection class in Open MPI will work correctly, especially not 
> the one we use the most often the ompi_free_list.


So far, I haven't found any problems with those.

I've been finding problems with MPI predefined handles (e.g., COMM_WORLD, 
COMM_PARENT, and others).  I still don't have dynamic processes working 
properly yet -- there's an extra refcount somewhere.  
https://svn.open-mpi.org/trac/ompi/changeset/28157 was found by this assert, 
too.

Let me get further along; if we find cases that are legitimately DESTRUCTing 
when the refcount isn't 1, we can discuss.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to