1 2 static char help[] = "Tests PetscCommGetComm().\n"; 3 4 #include <petscsys.h> 5 6 int main(int argc,char **argv) 7 { 8 PetscErrorCode ierr; 9 MPI_Comm comms[10],comm; 10 PetscInt i; 11 PetscRandom rand; 12 13 ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 14 ierr = PetscRandomCreate(PETSC_COMM_WORLD,&rand);CHKERRQ(ierr); 15 ierr = PetscObjectGetComm((PetscObject)rand,&comm);CHKERRQ(ierr); 16 for (i=0; i<10; i++) { 17 ierr = PetscCommGetComm(comm,&comms[i]);CHKERRQ(ierr); 18 } 19 for (i=0; i<5; i++) { 20 ierr = PetscCommRestoreComm(comm,&comms[i]);CHKERRQ(ierr); 21 } 22 for (i=0; i<5; i++) { 23 ierr = PetscCommGetComm(comm,&comms[i]);CHKERRQ(ierr); 24 } 25 for (i=0; i<10; i++) { 26 ierr = PetscCommRestoreComm(comm,&comms[i]);CHKERRQ(ierr); 27 } 28 ierr = PetscRandomDestroy(&rand);CHKERRQ(ierr); 29 ierr = PetscFinalize(); 30 return ierr; 31 } 32 33 /*TEST 34 35 test: 36 requires: defined(PETSC_USE_LOG) 37 args: -info 38 filter: grep Reusing | wc -l 39 40 TEST*/ 41