On 09/23/2010 02:13 PM, Jeff Trawick wrote: > I'm having a time coming to grips with how mod_proxy's use of this relates > to connections and how to document appropriately, and even with the > usefulness of some advertised semantics of apr_reslist itself. > > I guess at one time ttl was not respected except for the smax concept, that > was useless for proxy or some other user, then reslist was modified so that > ttl was checked during apr_reslist_acquire too; that left smax as only an > obscure object management control -- when those unusable resources are > garbage collected, and how much time should be spent on garbage collection. > > IOW, since a resource exceeding ttl is completely unusable and enforced > completely by apr_reslist_acquire(), the only reason to have smax is to > force some amount of garbage collection during reslist maintenance, and > furthermore the only reason not to set smax to a very low value (perhaps > just eliminating the parameter from the API and always performing full > garbage collection) is to avoid spending too much time cleaning up unusable > resources during one maintenance cycle. > > Index: include/apr_reslist.h > =================================================================== > --- include/apr_reslist.h (revision 987633) > +++ include/apr_reslist.h (working copy) > @@ -69,11 +69,13 @@ > * list will be stored. > * @param min Allowed minimum number of available resources. Zero > * creates new resources only when needed. > - * @param smax Resources will be destroyed to meet this maximum > - * restriction as they expire. > + * @param smax Resources will be destroyed during reslist maintenance to > + * meet this maximum restriction as they expire (reach their > ttl). > * @param hmax Absolute maximum limit on the number of total resources. > - * @param ttl If non-zero, sets the maximum amount of time in microseconds > a > - * resource may be available while exceeding the soft limit. > + * @param ttl If non-zero, sets the maximum amount of time in microseconds > an > + * unused resource is valid. Any resource which has exceeded > this > + * time will be destroyed, either when encountered by > + * apr_reslist_acquire() or during reslist maintenance. > * @param con Constructor routine that is called to create a new resource. > * @param de Destructor routine that is called to destroy an expired > resource. > * @param params Passed to constructor and deconstructor >
+1. Looks good to me. Regards RĂ¼diger
