[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevplatform/plugins/subversion
From:       Andreas Pakulat <apaku () gmx ! de>
Date:       2009-07-25 19:36:47
Message-ID: 1248550607.968852.1896.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1002372 by apaku:

Fix locking problem, apparently cli.checkout() calls the contextCancel a
couple of times and as the mutex was locked this caused a deadlock.
CCBUG:187978

 M  +16 -7     svncheckoutjob.cpp  
 M  +2 -0      svncheckoutjob_p.h  


--- trunk/KDE/kdevplatform/plugins/subversion/svncheckoutjob.cpp #1002371:1002372
@@ -50,17 +50,15 @@
     svn::Client cli(m_ctxt);
     try
     {
-        QMutexLocker l( m_mutex );
-        bool recurse = ( m_recursion == KDevelop::IBasicVersionControl::Recursive );
-        QByteArray srcba = m_sourceRepository.repositoryServer().toUtf8();
-        QByteArray destba = m_destinationDirectory.toLocalFile().toUtf8();
+        bool recurse = ( recursion() == KDevelop::IBasicVersionControl::Recursive );
+        QByteArray srcba = source().repositoryServer().toUtf8();
+        QByteArray destba = destination().toLocalFile().toUtf8();
         kDebug(9510) << srcba << destba;
-        cli.checkout( srcba.data(), svn::Path( destba.data() ), \
svn::Revision(svn::Revision::HEAD), recurse ); +        svn_revnum_t rev = \
cli.checkout( srcba.data(), svn::Path( destba.data() ), \
svn::Revision(svn_opt_revision_number), recurse );  }catch( svn::ClientException ce )
     {
-        QMutexLocker l( m_mutex );
         kDebug(9510) << "Exception while checking out: "
-                << m_sourceRepository.repositoryServer()
+                << source().repositoryServer()
                 << QString::fromUtf8( ce.message() );
         setErrorMessage( QString::fromUtf8( ce.message() ) );
         m_success = false;
@@ -82,7 +80,18 @@
     return m_sourceRepository;
 }
 
+KDevelop::IBasicVersionControl::RecursionMode SvnInternalCheckoutJob::recursion() \
const +{
+    QMutexLocker l( m_mutex );
+    return m_recursion;
+}
 
+KUrl SvnInternalCheckoutJob::destination() const
+{
+    QMutexLocker l( m_mutex );
+    return m_destinationDirectory;
+}
+
 SvnCheckoutJob::SvnCheckoutJob( KDevSvnPlugin* parent, \
KDevelop::OutputJob::OutputJobVerbosity verbosity )  : SvnJobBase( parent, verbosity \
)  {
--- trunk/KDE/kdevplatform/plugins/subversion/svncheckoutjob_p.h #1002371:1002372
@@ -34,6 +34,8 @@
 
     bool isValid() const;
     KDevelop::VcsLocation source() const;
+    KUrl destination() const;
+    KDevelop::IBasicVersionControl::RecursionMode recursion() const;
 protected:
     void run();
 private:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic