Joe Orton wrote: > On Tue, Aug 15, 2006 at 03:33:02AM +0200, Branko Čibej wrote: > >> It may not actually be necessary to add new functions to APR or >> anything. An acceptable solution might be to serialize allocations from >> the global pool, the way pool creation is serialized (IIRC). Allocating >> from the global pool doesn't happen very often, and if we could safely >> pass a NULL pool to apr_dso_load (or apr_hash_create, etc.), it think we >> could live with the potential performance penalty. >> > > I'm very much unconvinced. The app can serialize access to the > APR-global pool, if it wants to - likewise it could create a special > "DSO-holding-pool" from the global pool directly after calling > apr_initialize() to avoid the whole issue. >
You're still thinking in terms of "the app". Subversion is not an application. Yes, we could add an svn_initialize function that should be called by the app that uses SVN libraries right after apr_initialize. But our API compatibility guarantees (just like APR's) mean we can't force the use of that function until svn-2.0. Also, there's a large code base using SVN libs that have to work with newer releases. Granted, we made a mistake in our API. That doesn't mean there's no usability problem in APR. -- Brane
