smpi_bench_end();
if (request == NULL || *request == MPI_REQUEST_NULL) {
- retval = MPI_ERR_ARG;
+ retval = MPI_ERR_REQUEST;
} else {
smpi_mpi_start(*request);
retval = MPI_SUCCESS;
int PMPI_Startall(int count, MPI_Request * requests)
{
int retval = 0;
-
+ int i = 0;
smpi_bench_end();
if (requests == NULL) {
retval = MPI_ERR_ARG;
} else {
- smpi_mpi_startall(count, requests);
- retval = MPI_SUCCESS;
+ for (i = 0 ; i < count ; i++) {
+ if(requests[i] == MPI_REQUEST_NULL) {
+ retval = MPI_ERR_REQUEST;
+ }
+ }
+ if(retval != MPI_ERR_REQUEST) {
+ smpi_mpi_startall(count, requests);
+ retval = MPI_SUCCESS;
+ }
}
smpi_bench_begin();
return retval;
int PMPI_Test(MPI_Request * request, int *flag, MPI_Status * status)
{
int retval = 0;
-
smpi_bench_end();
if (request == NULL || flag == NULL) {
retval = MPI_ERR_ARG;
smpi_empty_status(status);
retval = MPI_ERR_REQUEST;
} else {
+#ifdef HAVE_TRACING
+ int rank = request && (*request)->comm != MPI_COMM_NULL
+ ? smpi_process_index()
+ : -1;
+
+ instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+ extra->type = TRACING_TEST;
+ TRACE_smpi_testing_in(rank, extra);
+#endif
*flag = smpi_mpi_test(request, status);
+#ifdef HAVE_TRACING
+ TRACE_smpi_testing_out(rank);
+#endif
retval = MPI_SUCCESS;
}
smpi_bench_begin();