1
1
Граф коммитов

17 Коммитов

Автор SHA1 Сообщение Дата
Nathan Hjelm
3c34f6f25c Merge pull request #517 from hjelmn/class_fix
opal/class: enable use of opal classes after opal_class_finalize
2015-08-31 12:13:58 -07:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Nathan Hjelm
db3a51f8c8 opal/class: enable use of opal classes after opal_class_finalize
This commit enables the use of opal classes after a call to
opal_class_finalize. This is needed to support re-initializing opal
after calling opal_finalize_util (). This is needed to support the
following without leaking:

MPI_T_init_thread ();
MPI_T_finalize ();

MPI_Init ();
MPI_Finalize ();

Before this commit the above code would crash in MPI_Init because the
constructor array for some class was freed by opal_class_finalize ().

The fix is to turn the cls_initialized member of opal_class_t into an
init epoch identifier and compare it against opal_class_init_epoch
instead of 1. On each call to opal_class_finalize the
opal_class_init_epoch counter is incremented forcing re-initialization
of classes after finalize.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-09 09:45:02 -06:00
George Bosilca
0b72cdabfd 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
2014-07-15 18:21:01 +00:00
George Bosilca
59017433e1 Allow for class allocation/deallocation.
This commit was SVN r32236.
2014-07-15 05:01:36 +00:00
George Bosilca
21f014f5f6 Apply a patch from Bert Wesarg.
This saves some memory for the constructors and destructors arrays of a
class by counting the constructors and destructors while we are counting
the cls_depth. And the reversion of the constructor array can now be done
without an extra loop.

This commit was SVN r13939.
2007-03-06 16:38:06 +00:00
Rainer Keller
96030de97b - Initialize the size of the opal_object class.
- Use the OBJ_CLASS_INSTANCE macro to initialize classes.
   This also gets rid of several missing initialization errors.

This commit was SVN r13227.
2007-01-21 14:24:29 +00:00
George Bosilca
c03b9ce679 One typo and one UNIX conversion of EOL.
This commit was SVN r11430.
2006-08-25 23:22:35 +00:00
George Bosilca
558646b07f One big step forward. Mostly explicit casting for Windows plus the
Windows version for the libevent. The one they provide is more than
innapropriate for what we need (without talking about the fact that
the code is just plain wrong).

This commit was SVN r11329.
2006-08-22 20:07:42 +00:00
George Bosilca
372ae03535 There should be one gap between the constructors and the destructors, otherwise
the last constructor will be set to NULL overwriting the first destructor. This
prevent us from calling the destructors on some classes.

This commit was SVN r9969.
2006-05-18 16:21:29 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
George Bosilca
d56656580a Profiling shows that we spend way to much time (it's relative of course but it's still more
than I want to) on the constructor and destructor loops. Compress the constructors and
destructors array to remove all the useless tests against NULL. Now we use the cache a
little bit more efficient.

Correct a threading problem in the obj_update function. In the threaded case we have to
return the value returned by the ompi_atomic_add function otherwise there are ways
leading to the release of an object twice.

This commit was SVN r8966.
2006-02-10 21:04:26 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Jeff Squyres
cf2c8b45a8 - Use proper prefixes for all #include statements (opal/, orte/, and
ompi/).
- There's still a handful of places that have orte/ #include files;
  still need to clean those up
- A lot of places still use ompi/include/constants.h -- those need to
  be converted over to use OPAL_ return codes and then switch to the
  opal constants.h.  This commit is the first few steps towards
  that...

This commit was SVN r6843.
2005-08-12 20:46:25 +00:00
Brian Barrett
e8afe9d9ef * fix some remaining ompi references
This commit was SVN r6331.
2005-07-04 00:16:24 +00:00
Brian Barrett
9da0b4fe1d * rename all the atomic functions from ompi to opal
This commit was SVN r6325.
2005-07-03 21:38:51 +00:00
Brian Barrett
499e4de1e7 * rename ompi_object and ompi_class to opal_object and opal_class
This commit was SVN r6321.
2005-07-03 16:06:07 +00:00