1
1

This is basically a revert of r32236. What looked as a good patch

turned out to be a nightmare, as the pointers to the classes are
located in shared libraries memory areas, and are not accesible
after the shared library is unloaded. Thus, OPAL cannot cleanup
the left-over classes from the other shared libraries.

This commit was SVN r32248.

The following SVN revision numbers were found above:
  r32236 --> open-mpi/ompi@59017433e1
Этот коммит содержится в:
George Bosilca 2014-07-15 18:21:01 +00:00
родитель 08d2a1a48d
Коммит 0b72cdabfd

Просмотреть файл

@ -165,20 +165,13 @@ void opal_class_initialize(opal_class_t *cls)
*/
int opal_class_finalize(void)
{
opal_class_t *cls;
int i;
if (NULL != classes) {
for (i = 0; i < num_classes; ++i) {
if (NULL == (cls = classes[i])) continue;
free(cls->cls_construct_array);
cls->cls_construct_array = NULL;
cls->cls_destruct_array = NULL;
cls->cls_depth = 0;
if( cls != &opal_object_t_class )
cls->cls_initialized = 0; /* all but the predefined */
classes[i] = NULL; /* security */
if (NULL != classes[i]) {
free(classes[i]);
}
}
free(classes);
classes = NULL;
@ -196,7 +189,7 @@ static void save_class(opal_class_t *cls)
expand_array();
}
classes[num_classes] = cls;
classes[num_classes] = cls->cls_construct_array;
++num_classes;
}