A number of issues have been raised as part of this discussion. Here is
what I have seen so far:
- contructor/destructor order not garaunteed: From an opal perspective
this should not be a problem. Most components are unloaded by
opal_finalize () not opal_finalize_util (). So opal components
opal should already be finalized by the time the destructor is called
(or we can finalize them in the destructor if necessary).
- portability: All the compilers most of us care about: gcc, intel,
clang. The exceptions appear to be xlc and pgi. For these compilers
we can fall back on Ralph's solution and just leak if
MPI_Finalize () is not called after MPI_T_Finalize (). Attached is an
implementation that does that (needs some adjustment).
- application/pgp-signature attachment: stored