Shaun,
Not in Open MPI :) But there is a section in the MPI Standard that
talk about the MPI_STATUS_IGNORE and make the list of functions that
can deal with it.
george.
On Mar 27, 2009, at 15:15 , Shaun Jackman wrote:
Hi George,
You will need to update MPI_Test and MPI_Wait as well, which do not
check that status != NULL. Is there an index of MPI functions by
their parameter type, such as the set of functions that take an
MPI_Status argument?
Cheers,
Shaun
George Bosilca wrote:
Shaun,
Thanks for the bug report. In general we like to check the
arguments against NULL, in order to make sure we don't segfault.
However, in this particular context we check against NULL but NULL
is our MPI_STATUS_IGNORE. I think I will prefer a little bit more
safer solution where we test against NULL just in case we will
change the MPI_STATUS_IGNORE value. So instead of the (NULL ==
status) I will prefer ((NULL == status) && (NULL !=
MPI_STATUS_IGNORE)). This way the compiler can optimize out the
second test when MPI_STATUS_IGNORE is a NULL constant, and will
keep it in case the MPI_STATUS_IGNORE became ! = NULL.
george.
On Mar 27, 2009, at 13:39 , Shaun Jackman wrote:
MPI_Request_get_status fails if the status parameter is passed
MPI_STATUS_IGNORE. A patch is attached.
Cheers,
Shaun
2009-03-26 Shaun Jackman <[email protected]>
* ompi/mpi/c/request_get_status.c (MPI_Request_get_status):
Do not fail if the status argument is NULL, because the
application may pass MPI_STATUS_IGNORE for the status argument.
2009-03-26 Shaun Jackman <[email protected]>
* ompi/mpi/c/request_get_status.c (MPI_Request_get_status):
Do not fail if the status argument is NULL, because the
application may pass MPI_STATUS_IGNORE for the status argument.
--- ompi/mpi/c/request_get_status.c.orig 2008-11-04
12:56:27.000000000 -0800
+++ ompi/mpi/c/request_get_status.c 2009-03-26 14:00:00.807344000
-0700
@@ -49,7 +49,7 @@
if( MPI_PARAM_CHECK ) {
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
- if( (NULL == flag) || (NULL == status) ) {
+ if (NULL == flag) {
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
MPI_ERR_ARG, FUNC_NAME);
} else if (NULL == request) {
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
MPI_ERR_REQUEST,
_______________________________________________
devel mailing list
[email protected]
http://www.open-mpi.org/mailman/listinfo.cgi/devel
_______________________________________________
devel mailing list
[email protected]
http://www.open-mpi.org/mailman/listinfo.cgi/devel
_______________________________________________
devel mailing list
[email protected]
http://www.open-mpi.org/mailman/listinfo.cgi/devel