apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Garrett Rooney" <roo...@electricjellyfish.net>
Subject Re: Problems with DSOs and Pools
Date Wed, 16 Aug 2006 21:29:45 GMT
On 8/16/06, Garrett Rooney <rooneg@electricjellyfish.net> wrote:
> On 8/15/06, William A. Rowe, Jr. <wrowe@rowe-clan.net> wrote:
> > Branko ─îibej wrote:
> > > Joe Orton wrote:
> > >> 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.
> >
> > I grok where you are getting at (remember that a program may load an apr
> > based module without even being an apr application Joe!  Worse, it may
> > load two such modules).
> >
> > Branko - would you like to add a simple apr/test/ app that illustrates
> > the issue for your skeptics?  Then it will be simpler to fix the API if
> > necessary or provide the appropriate workarounds, and document that through
> > the test example.
>
> I'll throw something together that demonstrates the problem.

Here's a patch to mod_test.c and testdso.c that illustrates the
problem.  Note that this is running inside the test framework, so it's
not identical to the case we're talking about, but you should be able
to get the idea from what's there.  If we move forward on this I'll
move the code out into a separate program so we can really simulate
the case we're talking about.

-garrett
Mime
View raw message