1
1
Jeff Squyres 72bef32e65 Convert the C++ Comm keyval creation and intercept callbacks to *not*
use the STL.  This is the first step in removing the STL from the C++
bindings (Solaris has 2 versions of the STL; if OMPI uses one and an
MPI application wants to use another, Bad Things happen).

The main idea is to wrap up the C++ callback function pointers and the
user's extra_state into our own struct that is passed as the
extra_state to the C keyval registration along with the intercept
routines in intercepts.cc.  When the C++ intercepts are activated,
they unwrap the user's callback and extra state and call them.

It got a little more complicated than that, however:

 * I realized that we were returning errors back from
   Comm::create_keyval() incorrectly, so I fixed that.
 * Instead of using STL maps to store associations, we now use an
   opal_list_t which has to be guaranteed to be initialized correctly
   and only once in a multi-threaded environment.
 * Because of whackyness in the C++ bindings, it is possible to call
   Comm::Create_keyval with C callbacks (!).  If both registered
   callbacks are C functions, then ensure to avoid all the C++
   machinery.

This commit was SVN r17125.
2008-01-12 13:20:38 +00:00
..
2007-12-05 14:03:12 +00:00
2007-02-08 23:50:04 +00:00
2007-02-08 23:50:04 +00:00
2007-02-08 23:50:04 +00:00
2007-02-08 23:50:04 +00:00
2007-02-08 23:50:04 +00:00
2007-02-08 23:50:04 +00:00