<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:11pt;font-family:Nimbus Sans L">
<p>Hi,</p>
<p></p>
<p>For a while now KDevelop hangs on termination. I am not sure with what release it started and it could have something to do with the version of GCC that I am running. Current version details are:</p>
<p></p>
<p>gcc --version</p>
<p>gcc (GCC) 4.1.0 20051114 (experimental)</p>
<p></p>
<p>kdevelop --version</p>
<p>Qt: 3.3.4</p>
<p>KDE: 3.5 (RC1)</p>
<p>KDevelop: 3.3</p>
<p>(but note that this is compiled from SVN sources)</p>
<p></p>
<p>I have tracked the problem down to the termination code of the CPP background parser and have developed the following patch to overcome the hang.</p>
<p></p>
<p><span style="font-family:Monospace">--- kdevelop-3.3.0/languages/cpp/backgroundparser.cpp   2005-09-10 17:52:36.000000000 +0930</span></p>
<p><span style="font-family:Monospace">+++ /usr/local/src/kde/kde-svn/kdevelop/languages/cpp/backgroundparser.cpp      2005-11-18 10:39:47.000000000 +0930</span></p>
<p><span style="font-family:Monospace">@@ -347,9 +347,6 @@</span></p>
<p><span style="font-family:Monospace">        QMutexLocker locker( &m_mutex );</span></p>
<p><span style="font-family:Monospace">        m_close = true;</span></p>
<p><span style="font-family:Monospace">        m_canParse.wakeAll();</span></p>
<p><span style="font-family:Monospace">-</span></p>
<p><span style="font-family:Monospace">-       while ( running() )</span></p>
<p><span style="font-family:Monospace">-               sleep( 1 );</span></p>
<p><span style="font-family:Monospace"> }</span></p>
<p></p>
<p><span style="font-family:Monospace"> bool BackgroundParser::filesInQueue()</span></p>
<p><span style="font-family:Monospace">@@ -398,8 +395,6 @@</span></p>
<p><span style="font-family:Monospace">        }</span></p>
<p></p>
<p><span style="font-family:Monospace">        kdDebug( 9007 ) << "!!!!!!!!!!!!!!!!!! BG PARSER DESTROYED !!!!!!!!!!!!" << endl;</span></p>
<p><span style="font-family:Monospace">-</span></p>
<p><span style="font-family:Monospace">-       QThread::exit();</span></p>
<p><span style="font-family:Monospace"> }</span></p>
<p></p>
<p><span style="font-family:Monospace"> //kate: indent-mode csands; tab-width 4; space-indent off;</span></p>
<p><span style="font-family:Monospace">--- kdevelop-3.3.0/languages/cpp/cppsupportpart.cpp     2005-10-11 00:30:20.000000000 +0930</span></p>
<p><span style="font-family:Monospace">+++ /usr/local/src/kde/kde-svn/kdevelop/languages/cpp/cppsupportpart.cpp        2005-11-18 10:39:55.000000000 +0930</span></p>
<p><span style="font-family:Monospace">@@ -248,7 +248,7 @@</span></p>
<p><span style="font-family:Monospace">        if ( m_backgroundParser )</span></p>
<p><span style="font-family:Monospace">        {</span></p>
<p><span style="font-family:Monospace">                m_backgroundParser->close();</span></p>
<p><span style="font-family:Monospace">-               //      m_backgroundParser->wait();</span></p>
<p><span style="font-family:Monospace">+               m_backgroundParser->wait();</span></p>
<p><span style="font-family:Monospace">                delete m_backgroundParser;</span></p>
<p><span style="font-family:Monospace">                m_backgroundParser = 0;</span></p>
<p><span style="font-family:Monospace">        }</span></p>
<p></p>
<p>==========</p>
<p></p>
<p>Cheers,</p>
<p></p>
<p>Kevin</p>
<p></p>
</body></html>