> I don't see why this should lead to deadlock? With current class-wise
> events you can already have many simultaneous instances of the same event
> at once.
>
>
Attached a MVE to better explain myself. If you run with p processes, you
will see what I mean



-- 
Stefano
#include "petsc.h"

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

  ierr = PetscSNPrintf(name,sizeof(name),"Event rank %d",PetscGlobalRank);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;
}

Reply via email to