File: win_sync.h

package info (click to toggle)
mpich 4.3.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 249,548 kB
  • sloc: ansic: 1,299,893; cpp: 74,751; f90: 72,164; javascript: 40,763; perl: 27,970; sh: 18,623; python: 15,956; xml: 14,418; makefile: 9,418; fortran: 8,046; java: 4,553; asm: 324; ruby: 176; lisp: 19; php: 8; sed: 4
file content (29 lines) | stat: -rw-r--r-- 1,823 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Copyright (C) by Argonne National Laboratory
 *     See COPYRIGHT in top-level directory
 */

#ifndef WIN_SYNC_H_INCLUDED
#define WIN_SYNC_H_INCLUDED

#define CHECK_ERR(stmt)                                                               \
    do {                                                                                \
        int err_class, err, rank;                                                       \
        MPI_Comm_rank(MPI_COMM_WORLD, &rank);                                           \
        err = stmt;                                                                     \
        if (err == MPI_SUCCESS) {                                                       \
            printf("%d: Operation succeeded, when it should have failed\n", rank);      \
            errors++;                                                                   \
        } else {                                                                        \
            MPI_Error_class(err, &err_class);                                         \
            if (err_class != MPI_ERR_RMA_SYNC)  {                                       \
                char str[MPI_MAX_ERROR_STRING];                                         \
                int  len;                                                               \
                MPI_Error_string(err, str, &len);                                       \
                printf("%d: Expected MPI_ERR_RMA_SYNC, got:\n%s\n", rank, str);         \
                errors++;                                                               \
            }                                                                           \
        }                                                                               \
    } while (0)

#endif /* WIN_SYNC_H_INCLUDED */