Author: ivan Date: Fri Feb 13 17:00:52 2015 New Revision: 1659604 URL: http://svn.apache.org/r1659604 Log: Try do the best to improve reliability of old application that does not call svn_dso_initialize2() right after apr_initialize().
See the related discussion in http://svn.haxx.se/dev/archive-2015-02/0219.shtml Subject: "Re: svn commit: r1659013 - /subversion/trunk/subversion/libsvn_subr/dso.c" Approved by: philip * subversion/libsvn_fs/fs-loader.c * subversion/libsvn_ra/ra_loader.c (svn_fs_initialize, svn_ra_initialize): Ensure that DSO subsystem is initialized early as possible if we're going to use it. Modified: subversion/trunk/subversion/libsvn_fs/fs-loader.c subversion/trunk/subversion/libsvn_ra/ra_loader.c Modified: subversion/trunk/subversion/libsvn_fs/fs-loader.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs/fs-loader.c?rev=1659604&r1=1659603&r2=1659604&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_fs/fs-loader.c (original) +++ subversion/trunk/subversion/libsvn_fs/fs-loader.c Fri Feb 13 17:00:52 2015 @@ -408,6 +408,11 @@ synchronized_initialize(void *baton, apr svn_error_t * svn_fs_initialize(apr_pool_t *pool) { +#if defined(SVN_USE_DSO) && APR_HAS_DSO + /* Ensure that DSO subsystem is initialized early as possible if + we're going to use it. */ + SVN_ERR(svn_dso_initialize2()); +#endif /* Protect against multiple calls. */ return svn_error_trace(svn_atomic__init_once(&common_pool_initialized, synchronized_initialize, Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.c?rev=1659604&r1=1659603&r2=1659604&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_ra/ra_loader.c (original) +++ subversion/trunk/subversion/libsvn_ra/ra_loader.c Fri Feb 13 17:00:52 2015 @@ -232,6 +232,11 @@ check_ra_version(const svn_version_t *ra svn_error_t *svn_ra_initialize(apr_pool_t *pool) { +#if defined(SVN_USE_DSO) && APR_HAS_DSO + /* Ensure that DSO subsystem is initialized early as possible if + we're going to use it. */ + SVN_ERR(svn_dso_initialize2()); +#endif return SVN_NO_ERROR; }
