This source file includes following definitions.
- ADIOI_PFS_ReadComplete
- ADIOI_PFS_WriteComplete
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 #include "ad_pfs.h"
   9 
  10 void ADIOI_PFS_ReadComplete(ADIO_Request *request, ADIO_Status *status,
  11                             int *error_code)
  12 {
  13     int err=0;
  14     static char myname[] = "ADIOI_PFS_READCOMPLETE";
  15 
  16     if (*request == ADIO_REQUEST_NULL) {
  17         *error_code = MPI_SUCCESS;
  18         return;
  19     }
  20 
  21     if ((*request)->queued) {
  22         err = _iowait(*((long *) (*request)->handle));
  23         if (err == -1) {
  24             *error_code = MPIO_Err_create_code(MPI_SUCCESS,
  25                                                MPIR_ERR_RECOVERABLE, myname,
  26                                                __LINE__, MPI_ERR_IO, "**io",
  27                                                "**io %s", strerror(errno));
  28         }
  29         else *error_code = MPI_SUCCESS;
  30     } 
  31     else *error_code = MPI_SUCCESS;
  32 #ifdef HAVE_STATUS_SET_BYTES
  33     if ((*request)->nbytes != -1)
  34         MPIR_Status_set_bytes(status, (*request)->datatype, (*request)->nbytes);
  35 #endif
  36 
  37     if ((*request)->queued != -1) {
  38 
  39         
  40 
  41 
  42 
  43 
  44 
  45 
  46 
  47         
  48 
  49         if ((*request)->queued) ADIOI_Del_req_from_list(request);
  50 
  51         (*request)->fd->async_count--;
  52         if ((*request)->handle) ADIOI_Free((*request)->handle);
  53         ADIOI_Free_request((ADIOI_Req_node *) (*request));
  54         *request = ADIO_REQUEST_NULL;
  55     }
  56 }
  57 
  58 
  59 void ADIOI_PFS_WriteComplete(ADIO_Request *request, ADIO_Status *status, int *error_code)  
  60 {
  61     ADIOI_PFS_ReadComplete(request, status, error_code);
  62 }