<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Dec 12, 2014 at 12:43 PM, Tobin Isaac <span dir="ltr"><<a href="mailto:tisaac@ices.utexas.edu" target="_blank">tisaac@ices.utexas.edu</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi all,<br>
<br>
I'm trying to learn about PETSc's dynamic library framework.  I've<br>
noticed that XXXInitializePackage() routines are idempotent, but<br>
XXXRegisterAll() routines are not, and usually have a visible<br>
XXXRegisterAllCalled boolean to guard against multiple calls (but not<br>
always).  Then there are comments that say "In general, if there is<br>
more than one DLL then XXXRegisterAll() may be called several times."<br>
I don't understand the different handling between initialization and<br>
registration, especially because the initialization routines generally<br>
call the registration routines.  Any help?<br></blockquote><div><br></div><div>That is just crappy engineering on our part. The RegisterAllCalled() should be idempotent</div><div>just like PackageInitialize(). Does anyone disagree with this?</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks,<br>
  Toby<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>