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.
pgpK7E0Z0lQiS.pgp
Description: PGP signature
