versions of the thread lock functions to determine at runtime if a lock
is needed) to OMPI_ENABLE_PROGRESS_THREADS instead of
OMPI_HAVE_THREAD_SUPPORT. Opal only starts a thread when
OMPI_ENABLE_PROGRESS_THREADS is enabled, and ORTE never really starts
a thread that requires special locking considerations.
MPI_INIT would set opal_uses_threads to true if thread level was
greater than MPI_THREAD_SINGLE, but it would never decreast the
value of opal_uses_threads, meaning that we always enabled all that
locking if we did a threaded build, which isn't neccessary. Now
we do locking iff progress threads are enabled OR thread level
is above MPI_THREAD_SINGLE.
This commit was SVN r11390.
remaining changes are in event.c and event.h, plus everything in the
WIN32-Code directory. I still have to find a way to make it working on
Windows without these changes, but I have good hopes. However, the
the code in WIN32-Code will have to stay there as it's more stable
than the one provided by the libevent project.
This commit was SVN r11386.
and MPI_WIN_DISP_UNIT were off by one from their C counterparts.
This fixes trac:304.
This commit was SVN r11385.
The following Trac tickets were found above:
Ticket 304 --> https://svn.open-mpi.org/trac/ompi/ticket/304
as we can have multiple threads in the event library if there are multiple
MPI threads. Well, we could, once I fix the need for the lock in
opal_progress(), which should happen shortly. Anyway, we need to use the
same locking scheme throughout the code, and the device support was
already using the OPAL_THREAD__{lock,unlock} macros, which only go
active when we think there are multiple threads we care about.
Also, stop duplicating the OPAL_THREAD_SCOPED_LOCK macro's functionality
and use it in a bunch of places in the code.
This commit was SVN r11383.
functionality of libevent for Windows. Anyway, these functions are not
currently used in the Open MPI project, so it's safe to remove them from the
Windows library. But, they should be never used otherwise changes are
required.
This commit was SVN r11378.
- Remove extra NULL argument from rsh module.
This commit was SVN r11377.
The following SVN revision numbers were found above:
r11347 --> open-mpi/ompi@f52c10d18e
convert between fortran and C string representations properly. In
doing so, we properly adhere to the MPI spec stating that MPI_Info
keys and values must be whitespace-trimmed when coming in from
Fortran. Hence, this fixes bug #241.
This commit was SVN r11356.
- use the OPAL functions for PATH and environment variables
- make all headers C++ friendly
- no unamed structures
- no implicit cast.
Plus a full implementation for the orte_wait functions.
This commit was SVN r11347.
The same treatement will happens on all sub-projects. The .h files
have to be C++ compatibles and all symbols with an external visibility
have to get the {PROJECT}_DECLSPEC in front of the prototype.
This commit was SVN r11340.
range of OS friendly path management functions, such as opal_basename
opal_dirname. They should always be used instead of basename and
dirname. There are several functions which allow us to create paths
that are compatible with the OS.
The OPAL_ENV_SEP define should be used (instead of ':') when a env
variable is splitted.
This commit was SVN r11336.
for prefetch and branch prediction work. A non-happy compiler could
just think these were functions and we wouldn't get the error, because
we didn't try to link.
Refs trac:287
This commit was SVN r11333.
The following Trac tickets were found above:
Ticket 287 --> https://svn.open-mpi.org/trac/ompi/ticket/287
of 4 when we are finding the next MPI_STATUS in the array.
Refs trac:236
This commit was SVN r11332.
The following Trac tickets were found above:
Ticket 236 --> https://svn.open-mpi.org/trac/ompi/ticket/236
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.
One of the most important is the IOVBASE_TYPE which should be used
all over the places for casting to and from the iov_base field of
the iovec struct. The reason is because windows does not support
any kind of implicit conversion (not even through void*). All
conversions should be EXPLICIT.
This commit was SVN r11328.