[petsc-dev] Get/Restore vs Create/Destroy

Barry Smith bsmith at mcs.anl.gov
Thu Jul 20 13:20:11 CDT 2017


  Let us know of specific cases that your feel violate the intended paradigm.

   Barry

> On Jul 20, 2017, at 10:15 AM, Matthew Knepley <knepley at gmail.com> wrote:
> 
> On Thu, Jul 20, 2017 at 9:25 AM, Blaise A Bourdin <bourdin at lsu.edu> wrote:
> Hi,
> 
> It’s always been my understanding that and pets object obtained by a XXXGetYYY had to be released with a matching XXXRestoreYYY, and that those created using XXXCreateYYY had to be destroyed with a YYYDestroy.
> 
> It seems that this convention is getting broken in several place. I understand that in several situations, this is because the XXXRestoreYYY would essentially do nothing.
> 
> Is it safe to assume that if a function XXXGetYYY does not have a matching XXXRestoreYYY, the instance of PetscYYY does not have to be destroyed in any way?
> 
> Yes. We use Get in two ways:
> 
>   1) Get a borrowed reference. Then nothing has to be done
> 
>   2) Get a reference which need extra processing. This requires a matching Restore
>  
> Is it safe to assume that any instance of a PetscYYY created from XXXCreateYYY can be safely destroyed with a YYYDestroy without side effects?
> 
> Yes.
>  
> If so, should the offending functions be renamed or should something be explicitly added to their man page?
> 
> We try to always have the matching restore on the manpage. If it is not, we should fix it.
> 
>   Thanks,
> 
>     Matt
>  
> 
> Blaise
> 
> --
> Department of Mathematics and Center for Computation & Technology
> Louisiana State University, Baton Rouge, LA 70803, USA
> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> http://www.caam.rice.edu/~mk51/




More information about the petsc-dev mailing list