1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2014 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
11 int main(int argc, char **argv)
13 int size, rank, msg, cancelled;
17 MPI_Init(&argc, &argv);
18 MPI_Comm_size(MPI_COMM_WORLD, &size);
19 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
22 fprintf(stderr, "ERROR: must be run with 2 processes");
23 MPI_Abort(MPI_COMM_WORLD, 1);
28 /* Post, then cancel MPI_ANY_SOURCE recv */
29 MPI_Irecv(&msg, 1, MPI_INT, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &request);
31 MPI_Wait(&request, &status);
32 MPI_Test_cancelled(&status, &cancelled);
35 MPI_Barrier(MPI_COMM_WORLD);
36 MPI_Irecv(&msg, 1, MPI_INT, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &request);
37 MPI_Wait(&request, &status);
41 MPI_Barrier(MPI_COMM_WORLD);
43 MPI_Send(&msg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
47 printf(" No Errors\n");