<div>threadcomm.c has this thing<br><br>  for (i=0;i<PETSC_KERNELS_MAX;i++) {</div><div>    ierr = PetscNew(struct _p_PetscThreadCommJobCtx,&PetscJobQueue->jobs[i]);CHKERRQ(ierr);</div><div><br><br>that gets freed when the last PetscObject gets destroyed. But if the user forgets to Destroy something, this shows up as a memory leak. Since the relevant malloc_dump output is much higher in the stack, this is confusing noise, and I'd like to eliminate it. We can either</div>
<div><br></div><div>1. not log this memory at all by calling malloc or posix_memalign directly</div><div><br></div><div>2. put code into PetscFinalize that ensures that this stuff has been freed (very messy if user does anything weird with communicators)</div>
<div><br></div><div>3. add way to mark PetscTrMalloc'd memory as "indirect" so that it is not reported by default</div>