#include "petsc.h"

int main(int argc, char *argv[])
{
  PetscErrorCode ierr;
  char name[64];
  PetscLogEvent e;
  ierr = PetscInitialize(&argc,&argv,NULL,0);CHKERRQ(ierr);

  if (!(PetscGlobalRank % 2)) {
    ierr = PetscLogEventRegister("event1",PETSC_OBJECT_CLASSID,&e);CHKERRQ(ierr);
    ierr = PetscPrintf(PETSC_COMM_SELF,"[%d] event1 registered as %d\n",PetscGlobalRank,e);CHKERRQ(ierr);
  }

  ierr = PetscLogEventRegister("event2",PETSC_OBJECT_CLASSID,&e);CHKERRQ(ierr);
  ierr = PetscPrintf(PETSC_COMM_SELF,"[%d] event2 registered as %d\n",PetscGlobalRank,e);CHKERRQ(ierr);

  if (PetscGlobalRank % 2) {
    ierr = PetscLogEventRegister("event1",PETSC_OBJECT_CLASSID,&e);CHKERRQ(ierr);
    ierr = PetscPrintf(PETSC_COMM_SELF,"[%d] event1 registered as %d\n",PetscGlobalRank,e);CHKERRQ(ierr);
  }

  
  ierr = PetscLogEventRegister(name,PETSC_OBJECT_CLASSID,&e);CHKERRQ(ierr);
  ierr = PetscLogEventBegin(e,NULL,NULL,NULL,NULL);CHKERRQ(ierr);
  ierr = PetscSleep(PetscGlobalRank+1);CHKERRQ(ierr);
  ierr = PetscLogEventEnd(e,NULL,NULL,NULL,NULL);CHKERRQ(ierr);
  ierr = PetscFinalize();
  return ierr;
}
