diff options
author | Michael Stewart <vericgar@gentoo.org> | 2006-04-16 22:12:00 +0000 |
---|---|---|
committer | Michael Stewart <vericgar@gentoo.org> | 2006-04-16 22:12:00 +0000 |
commit | 96fae200109f59a844f37fcc03fd8e735c667886 (patch) | |
tree | a04f41a6b9a86f939ca7ede36bf4de9b630525ff /dev-libs/apr-util/files | |
parent | dev-libs/eb stable on ppc. (diff) | |
download | gentoo-2-96fae200109f59a844f37fcc03fd8e735c667886.tar.gz gentoo-2-96fae200109f59a844f37fcc03fd8e735c667886.tar.bz2 gentoo-2-96fae200109f59a844f37fcc03fd8e735c667886.zip |
General cleanup. Use a saner filename for the patch for apr-util-0.9.6-r2. Remove outdated/unsupported apr-util-1.1.2.
(Portage version: 2.1_pre6)
Diffstat (limited to 'dev-libs/apr-util/files')
-rw-r--r-- | dev-libs/apr-util/files/apr-util-0.9.x-161086-161087.patch | 140 | ||||
-rw-r--r-- | dev-libs/apr-util/files/digest-apr-util-1.1.2 | 1 |
2 files changed, 140 insertions, 1 deletions
diff --git a/dev-libs/apr-util/files/apr-util-0.9.x-161086-161087.patch b/dev-libs/apr-util/files/apr-util-0.9.x-161086-161087.patch new file mode 100644 index 000000000000..9cca25d358ce --- /dev/null +++ b/dev-libs/apr-util/files/apr-util-0.9.x-161086-161087.patch @@ -0,0 +1,140 @@ +Index: include/apr_reslist.h +=================================================================== +--- include/apr_reslist.h (revision 161086) ++++ include/apr_reslist.h (revision 161087) +@@ -112,6 +112,24 @@ + APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist, + void *resource); + ++/** ++ * Set the timeout the acquire will wait for a free resource ++ * when the maximum number of resources is exceeded. ++ * @param reslist The resource list. ++ * @param timeout Timeout to wait. The zero waits forewer. ++ */ ++APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist, ++ apr_interval_time_t timeout); ++ ++/** ++ * Invalidate a resource in the pool - e.g. a database connection ++ * that returns a "lost connection" error and can't be restored. ++ * Use this instead of apr_reslist_release if the resource is bad. ++ */ ++APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist, ++ void *resource); ++ ++ + #ifdef __cplusplus + } + #endif +Index: misc/apr_reslist.c +=================================================================== +--- misc/apr_reslist.c (revision 161086) ++++ misc/apr_reslist.c (revision 161087) +@@ -50,6 +50,7 @@ + int smax; /* soft maximum on the total number of resources */ + int hmax; /* hard maximum on the total number of resources */ + apr_interval_time_t ttl; /* TTL when we have too many resources */ ++ apr_interval_time_t timeout; /* Timeout for waiting on resource */ + apr_reslist_constructor constructor; + apr_reslist_destructor destructor; + void *params; /* opaque data passed to constructor and destructor calls */ +@@ -119,12 +120,9 @@ + res = apr_pcalloc(reslist->pool, sizeof(*res)); + + rv = reslist->constructor(&res->opaque, reslist->params, reslist->pool); +- if (rv != APR_SUCCESS) { +- return rv; +- } + + *ret_res = res; +- return APR_SUCCESS; ++ return rv; + } + + /** +@@ -133,14 +131,7 @@ + */ + static apr_status_t destroy_resource(apr_reslist_t *reslist, apr_res_t *res) + { +- apr_status_t rv; +- +- rv = reslist->destructor(res->opaque, reslist->params, reslist->pool); +- if (rv != APR_SUCCESS) { +- return rv; +- } +- +- return APR_SUCCESS; ++ return reslist->destructor(res->opaque, reslist->params, reslist->pool); + } + + static apr_status_t reslist_cleanup(void *data_) +@@ -188,6 +179,7 @@ + /* Create the resource */ + rv = create_resource(reslist, &res); + if (rv != APR_SUCCESS) { ++ free_container(reslist, res); + apr_thread_mutex_unlock(reslist->listlock); + return rv; + } +@@ -314,7 +306,15 @@ + * a new one, or something becomes free. */ + else while (reslist->ntotal >= reslist->hmax + && reslist->nidle <= 0) { +- apr_thread_cond_wait(reslist->avail, reslist->listlock); ++ if (reslist->timeout) { ++ if ((rv = apr_thread_cond_timedwait(reslist->avail, ++ reslist->listlock, reslist->timeout)) != APR_SUCCESS) { ++ apr_thread_mutex_unlock(reslist->listlock); ++ return rv; ++ } ++ } ++ else ++ apr_thread_cond_wait(reslist->avail, reslist->listlock); + } + /* If we popped out of the loop, first try to see if there + * are new resources available for immediate use. */ +@@ -330,17 +330,13 @@ + * a resource to fill the slot and use it. */ + else { + rv = create_resource(reslist, &res); +- +- if (rv != APR_SUCCESS) { +- apr_thread_mutex_unlock(reslist->listlock); +- return rv; ++ if (rv == APR_SUCCESS) { ++ reslist->ntotal++; ++ *resource = res->opaque; + } +- +- reslist->ntotal++; +- *resource = res->opaque; + free_container(reslist, res); + apr_thread_mutex_unlock(reslist->listlock); +- return APR_SUCCESS; ++ return rv; + } + } + +@@ -359,4 +355,21 @@ + return reslist_maint(reslist); + } + ++APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist, ++ apr_interval_time_t timeout) ++{ ++ reslist->timeout = timeout; ++} ++ ++APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist, ++ void *resource) ++{ ++ apr_status_t ret; ++ apr_thread_mutex_lock(reslist->listlock); ++ ret = reslist->destructor(resource, reslist->params, reslist->pool); ++ reslist->ntotal--; ++ apr_thread_mutex_unlock(reslist->listlock); ++ return ret; ++} ++ + #endif /* APR_HAS_THREADS */ diff --git a/dev-libs/apr-util/files/digest-apr-util-1.1.2 b/dev-libs/apr-util/files/digest-apr-util-1.1.2 deleted file mode 100644 index 159e5d96cf74..000000000000 --- a/dev-libs/apr-util/files/digest-apr-util-1.1.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 e82f933c065ccd1c7d910da67bc77825 apr-util-1.1.2.tar.gz 615019 |