1
1
openmpi/ompi
Brian Barrett 95c0a17b9a Send the unlock request before starting the requests. We won't unlock until we get an ack from the remote side,
so there's no longer a race there (I used to do the unlock request last, after local completion of all the
requests completed, to try to avoid having the passive side reply to the active side, but I don't do that
anymore).  The unlock side will not "unlock" the window until it actually receives the correct number of results,
so we're good there.

This fixes an issue where we would receive data on the remote side we weren't expecting that could cause
us to release a lock before it really should have been released to the requesting peer.  It could also
cause a deadlock if one of the processes trying to unlock was "self", as that would result in the active
unlock never sending the unlock request, even though it sent the payload, which could cause a counter
that should always be positive to hit -1, causing an infinite loop that could only be solved by
popping up the stack, which was an impossibility.

Refs trac:785

This commit was SVN r13160.

The following Trac tickets were found above:
  Ticket 785 --> https://svn.open-mpi.org/trac/ompi/ticket/785
2007-01-17 21:13:12 +00:00
..
attribute Complete next round of message size reduction: "strip" the descriptive info from the returned values. I have now added a flag to the gpr address mode (ORTE_GPR_STRIPPED) that instructs the gpr to not include segment names or tokens in the returned gpr_value_t objects. 2006-12-09 23:10:25 +00:00
class Merge with gleb-mpool branch. All RDMA components use same mpool now (rdma). 2006-12-17 12:26:41 +00:00
communicator replaced the old CID allocation algorithm with the blocked algorithm. The 2006-12-12 22:01:39 +00:00
datatype Fix compile errors in heterogeneous code when not building heterogeneous 2006-12-28 20:28:14 +00:00
debuggers Remove all warnings from the TotalView interface. 2006-10-11 17:29:29 +00:00
errhandler Add the DECLSPEC. 2007-01-03 19:59:18 +00:00
etc Next step in the project split, mainly source code re-arranging 2006-02-12 01:33:29 +00:00
file They are supposed to be ints not size_t. 2006-11-08 17:05:15 +00:00
group just a reordering of the arguments in a comparison in order to comply with the 2006-10-23 17:14:23 +00:00
include Fix type casting issue with MPI_ERRCODES_IGNORE that would cause 2006-12-31 02:51:13 +00:00
info The last patch for Windows support. Mostly casting and conversion to C++ friendly headers. 2006-08-24 16:38:08 +00:00
mca Send the unlock request before starting the requests. We won't unlock until we get an ack from the remote side, 2007-01-17 21:13:12 +00:00
mpi Ensure to use datatype_index consistently. Only a problem for 2007-01-17 12:34:30 +00:00
op The last patch for Windows support. Mostly casting and conversion to C++ friendly headers. 2006-08-24 16:38:08 +00:00
peruse The last patch for Windows support. Mostly casting and conversion to C++ friendly headers. 2006-08-24 16:38:08 +00:00
proc Add missing headers. 2007-01-02 08:04:34 +00:00
request Fixes trac:659 2006-12-09 14:20:08 +00:00
runtime Minor fixes for MPI-level aborting: 2007-01-04 22:30:28 +00:00
tools Heterogeneous support changes: 2006-12-30 17:13:18 +00:00
win Last set of explicit conversions. We are now close to the zero warnings on 2006-10-20 03:57:44 +00:00
Makefile.am Rename liborte to libopen-rte and libopal to libopen-pal per telecon today 2006-12-05 18:27:24 +00:00
README.dox Update the copyright notices for IU and UTK. 2005-11-05 19:57:48 +00:00

/*
 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
 *                         University Research and Technology
 *                         Corporation.  All rights reserved.
 * Copyright (c) 2004-2005 The University of Tennessee and The University
 *                         of Tennessee Research Foundation.  All rights
 *                         reserved.
 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
 *                         University of Stuttgart.  All rights reserved.
 * Copyright (c) 2004-2005 The Regents of the University of California.
 *                         All rights reserved.
 * $COPYRIGHT$
 * 
 * Additional copyrights may follow
 * 
 * $HEADER$
 */
/** @mainpage

@section mainpage_introduction Introduction

This is the introduction.
This is the introduction.
This is the introduction.
This is the introduction.
This is the introduction.
This is the introduction.
This is the introduction.

@section main_install Installation
 
This is the installation section.
This is the installation section.
This is the installation section.
This is the installation section.
This is the installation section.
This is the installation section.
This is the installation section.

*/