<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>