apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject [PATCH] tweaks to apr_reslist_create documentation
Date Thu, 23 Sep 2010 12:13:20 GMT
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
  * @param hmax Absolute maximum limit on the number of total resources.
- * @param ttl If non-zero, sets the maximum amount of time in microseconds
- *            resource may be available while exceeding the soft limit.
+ * @param ttl If non-zero, sets the maximum amount of time in microseconds
+ *            unused resource is valid.  Any resource which has exceeded
+ *            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
  * @param params Passed to constructor and deconstructor

View raw message