As it turns out, allocating memory from the OS in a multi-threaded environment is relatively costly.  With APR pools, this happens every time we use a newly created root pool.
As it turns out, allocating memory from the OS in a multi-threaded
environment is relatively costly.  With APR pools, this happens
every time we use a newly created root pool.

Therefore, teach svnserve to recycle the connection pools, keeping
those precious memory blocks allocated instead of disposing and
re-allocating them.

* subversion/svnserve/svnserve.c
  (connection_pools,
   connection_pools_mutex): new global data structures
  (initialize_connection_pools,
   acquire_connection_pool_internal,
   acquire_connection_pool,
   release_connection_pool): functions to init, get and recycle the pools
  (release_shared_pool,
   main): recycle!

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@1523465 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion