2 * Copyright (C) by Argonne National Laboratory
3 * See COPYRIGHT in top-level directory
11 static char MTEST_Descrip[] = "Test that communicators have reference count semantics";
14 int main(int argc, char *argv[])
20 MTest_Init(&argc, &argv);
22 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
23 MPI_Comm_size(MPI_COMM_WORLD, &size);
25 fprintf(stderr, "This test requires at least two processes.");
26 MPI_Abort(MPI_COMM_WORLD, 1);
29 MPI_Comm_dup(MPI_COMM_WORLD, &comm);
32 MPI_Barrier(MPI_COMM_WORLD);
33 MPI_Ssend(NULL, 0, MPI_INT, 1, 0, comm);
35 } else if (rank == 1) {
37 /* recv an ssend after the user frees the comm */
38 MPI_Irecv(NULL, 0, MPI_INT, 0, 0, comm, &req);
40 MPI_Barrier(MPI_COMM_WORLD);
41 MPI_Wait(&req, MPI_STATUS_IGNORE);
44 MPI_Barrier(MPI_COMM_WORLD);
48 return MTestReturnValue(errs);