AMPI #952: update ROMIO to MPICH2-1.4.1p1
[charm.git] / src / libs / ck-libs / ampi / romio / adio / common / adi_close.c
blobce82d3165280c334171e001184486db3357c6601
1 /* -*- Mode: C; c-basic-offset:4 ; -*- */
2 /*
4 * Copyright (C) 1997 University of Chicago.
5 * See COPYRIGHT notice in top-level directory.
6 */
8 #include "adio.h"
10 #ifdef HAVE_UNISTD_H
11 #include <unistd.h>
12 #endif
16 void ADIOI_GEN_Close(ADIO_File fd, int *error_code)
18 int err, derr=0;
19 static char myname[] = "ADIOI_GEN_CLOSE";
21 #ifdef ADIOI_MPE_LOGGING
22 MPE_Log_event( ADIOI_MPE_close_a, 0, NULL );
23 #endif
24 err = close(fd->fd_sys);
25 #ifdef ADIOI_MPE_LOGGING
26 MPE_Log_event( ADIOI_MPE_close_b, 0, NULL );
27 #endif
28 if (fd->fd_direct >= 0) {
29 #ifdef ADIOI_MPE_LOGGING
30 MPE_Log_event( ADIOI_MPE_close_a, 0, NULL );
31 #endif
32 derr = close(fd->fd_direct);
33 #ifdef ADIOI_MPE_LOGGING
34 MPE_Log_event( ADIOI_MPE_close_b, 0, NULL );
35 #endif
38 fd->fd_sys = -1;
39 fd->fd_direct = -1;
41 if (err == -1 || derr == -1) {
42 *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
43 myname, __LINE__, MPI_ERR_IO,
44 "**io",
45 "**io %s", strerror(errno));
47 else *error_code = MPI_SUCCESS;