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). -Nathan
pgpcsLSFVFI1U.pgp
Description: PGP signature