Actual source code: ex72.c

  1: const char help[] = "Test dropping PetscLogEventEnd()";

  3: #include <petsc.h>

  5: int main(int argc, char **argv)
  6: {
  7:   PetscLogEvent e1, e2;
  8:   PetscLogStage s;

 10:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
 11:   PetscCall(PetscLogEventRegister("Event-1", PETSC_OBJECT_CLASSID, &e1));
 12:   PetscCall(PetscLogEventRegister("Event-2", PETSC_OBJECT_CLASSID, &e2));
 13:   PetscCall(PetscLogStageRegister("User Stage", &s));
 14:   PetscCall(PetscLogStagePush(s));
 15:   PetscCall(PetscSleep(0.1));
 16:   PetscCall(PetscLogEventBegin(e1, NULL, NULL, NULL, NULL));
 17:   PetscCall(PetscSleep(0.1));
 18:   PetscCall(PetscLogEventBegin(e2, NULL, NULL, NULL, NULL));
 19:   PetscCall(PetscSleep(0.1));
 20:   PetscCall(PetscLogStagePop());
 21:   PetscCall(PetscLogEventBegin(e1, NULL, NULL, NULL, NULL));
 22:   PetscCall(PetscSleep(0.1));
 23:   PetscCall(PetscLogEventBegin(e2, NULL, NULL, NULL, NULL));
 24:   PetscCall(PetscSleep(0.1));
 25:   PetscCall(PetscLogEventEnd(e1, NULL, NULL, NULL, NULL));
 26:   PetscCall(PetscFinalize());
 27:   return 0;
 28: }

 30: /*TEST

 32:   test:
 33:     suffix: 0
 34:     requires: defined(PETSC_USE_LOG)
 35:     args: -log_view ::ascii_flamegraph -info :loghandler
 36:     filter: sed -E "s/ [0-9]+/ time_removed/g"

 38: TEST*/