You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2015/09/19 15:19:52 UTC
svn commit: r1704020 -
/subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c
Author: ivan
Date: Sat Sep 19 13:19:51 2015
New Revision: 1704020
URL: http://svn.apache.org/viewvc?rev=1704020&view=rev
Log:
On the reuse-ra-session branch: Optimize RA session expunge policy.
* subversion/libsvn_client/ra_cache.c
(expunge_cache_entries): Remove expired inactive sessions from pool first.
Then remove other inactive sessions if we have more than
MAX_INACTIVE_SESSIONS in pool.
Modified:
subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c
Modified: subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c
URL: http://svn.apache.org/viewvc/subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c?rev=1704020&r1=1704019&r2=1704020&view=diff
==============================================================================
--- subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c (original)
+++ subversion/branches/reuse-ra-session/subversion/libsvn_client/ra_cache.c Sat Sep 19 13:19:51 2015
@@ -467,20 +467,20 @@ expunge_cache_entries(svn_client__ra_cac
{
cache_entry_t *cache_entry;
- /* Limit the size of the inactive list. */
- while (ra_cache->inactive_count > MAX_INACTIVE_SESSIONS)
- {
- cache_entry = APR_RING_LAST(&ra_cache->freelist);
- remove_inactive_entry(ra_cache, cache_entry, FALSE);
- }
-
/* Remove expired inactive cache entries. */
cache_entry = APR_RING_LAST(&ra_cache->freelist);
while (ra_cache->inactive_count > 0
- && now > cache_entry->released + INACTIVE_SESSION_TIMEOUT)
- {
+ && now > cache_entry->released + INACTIVE_SESSION_TIMEOUT)
+ {
remove_inactive_entry(ra_cache, cache_entry, TRUE);
cache_entry = APR_RING_LAST(&ra_cache->freelist);
+ }
+
+ /* Limit the size of the inactive list. */
+ while (ra_cache->inactive_count > MAX_INACTIVE_SESSIONS)
+ {
+ cache_entry = APR_RING_LAST(&ra_cache->freelist);
+ remove_inactive_entry(ra_cache, cache_entry, FALSE);
}
}