Matthew Knepley <[email protected]> writes:
>>    2) We need a way for initializing all the packages in PetscInitialize()
>> instead of as needed. In master I see
>>
>
> I really do not like this since then we are creating circular dependencies,
> and people who would like to "use
> only a part" will be upset. What about having the user who wants completely
> threadsafe stuff call *Initialize(),
> and then have this cascade all the way down (I think it should anyway).

Why is it not enough to have a lock for initialization (or anything else
that needs to modify the remaining globals)?  Those functions are not
performance-sensitive, so the locking strategy need only be immune to
deadlock, not high-performance.

Attachment: pgpK7E0Z0lQiS.pgp
Description: PGP signature

Reply via email to