Julian Foad wrote on Wed, Sep 14, 2011 at 16:07:19 +0100: > Enable libsvn_client APIs to re-use a previous RA session instead of always > opening a new connection. > > Basically: > > - Declare an opaque "RA session cache" object in the public API. It holds > one open RA session per repository, for any number of repositories. >
Why per repository? What about a client that runs 'svn update' on several wc's of the same URL concurrently? > - Implement a private API for libsvn_client functions to use instead of > simply opening a new session. It re-uses a session from the cache, if > present, or opens a new connection if necessary. As far as I can see, the "get a session from the cache" code assumes that the cache is used by a single thread. (Consider what happens if one thread retrieves or uses a cached session while another retrieves the same session from the cache.) Will the cache be thread-safe?