Lockless Inc


MPI_Buffer_detach - Detaches the buffer used for buffered sends


#include <mpi.h> int MPI_Buffer_detach(void *buffer , int *size );

#include <pmpi.h> int PMPI_Buffer_detach(void *buffer , int *size );

#include <mpi.h> int MPI::Detach_buffer(void *&buffer );

INCLUDE 'mpif.h' MPI_BUFFER_DETACH(buffer , size , ierr ) <type> buffer (*) INTEGER size , ierr


buffer - address of the old buffer (array)

size - size of the old buffer (integer)


The MPI_Buffer_detach() function is used to detach the buffer of size bytes used by buffered sends. This function will block until all outstanding buffered sends are complete. It is up to the user to free the buffer when it is no longer used, if necessary. If no buffer is attached, then this function will set buffer to NULL and size to zero.

If either of buffer or size are NULL pointers, then this function will still complete without error and not store into the invalid pointers.

Note that in C buffer is of type void * to make use of this function possible without casts, even though void ** is a more accurate description of the type.


All MPI routines except for MPI_Wtime and MPI_Wtick return an error code. The the current MPI error handler is invoked if the return value is not MPI_SUCCESS. The default error handler aborts, but this may be changed with by using the MPI_Errhandler_set() function. The predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned instead. Note that MPI does not guarentee that an MPI program can continue past an error. In this implementation, all errors except MPI_ERR_INTERN or MPI_ERR_OTHER should always be recoverable.

In C, the error code is passed as the return value. In FORTRAN, all functions have an parameter ierr which returns the error code. MPI C++ functions do not directly return an error code. However, C++ users may want to use the MPI::ERRORS_THROW_EXCEPTIONS handler. This will throw an MPI::Exception with the corresponding error code. To prevent exceptions from being raised from within C and Fortran code, they will see all error return values as MPI_ERR_PENDING when this handler is chosen. In this implementation, call MPI::throw_exception() to throw the correct exception if this occurs.

MPI_SUCCESS - No error;

MPI_ERR_PENDING - Pending exception.


MPI_Bsend (3) MPI_Ibsend (3) MPI_Bsend_init (3) MPI_Buffer_attach (3)

About Us Returns Policy Privacy Policy Send us Feedback
Company Info | Product Index | Category Index | Help | Terms of Use
Copyright © Lockless Inc All Rights Reserved.