Barry Smith <[email protected]> writes:
>    What do tiny or fat Vecs have to do with wether
>    ISInitializePackage() and friends are called during some
>    initialization or “when needed” (and thus requiring some sort of
>    lock).

That was a question of whether threads should have their own private
library contexts.  (That is the strongest separation you could have
between threads, and would make some sense when multiple components of a
large application use PETSc, but do not interact via PETSc.)

>    BTW: I am not opposed to ISInitializePackage() using a lock to
>    insure it is done only once per process, but I ain’t writing that
>    code.

Okay, that's easy code, it just depends on what sort of portability we
want for threaded code.  (Non-threaded code will always just work.)  For
threaded, should we assume that (a) inline assembly is supported, (b)
C11 stdatomic.h is available, or (c) OpenMP is available?

Attachment: pgprG2pa9BsIl.pgp
Description: PGP signature

Reply via email to