52fd270663
MPI_COMM_SELF in reverse order during MPI_FINALIZE (well, actually, ''all'' attributes are now deleted in reverse order whenever a communicator is destructed). Also revamped a few things in the MPI attribute implementation: * use a One Big Lock philosophy for making the implementation thread safe (vs. the pair of locks we were using before). One Big Lock is quite a bit simpler and has fewer corner cases; the code for attributes is still complicated, but is definitely less complex than it used to be. * The COPY_ATTR_CALLBACKS and DELETE_ATTR_CALLBACKS macros no longer return; they simply set a value if something went wrong. Then we check this value after the macros complete. This simplifies unlocking, etc. * Added write barriers right before releasing locks to ensure memory consistency. * Fixed a bunch of typos in comments, and some indenting. Many thanks to KAWASHIMA Takahiro who contributed the original patch for attribute destruction ordering, and who helped test/debug/evolve the patch to its final form. Fixes trac:3123. cmr:v1.7.2:reviewer=bosilca This commit was SVN r28439. The following Trac tickets were found above: Ticket 3123 --> https://svn.open-mpi.org/trac/ompi/ticket/3123 |
||
---|---|---|
.. | ||
attribute_predefined.c | ||
attribute.c | ||
attribute.h | ||
Makefile.am |