BTW, I am not even sure this would fix the symptoms. I tried a rebuild
of gdcm using DOT_NUM_THREADS = 1 in the doxygen configuration (which
I would hope would be the old behavior).
Not exactly. It still starts one thread for performing the real work.
When I got traces for kfreebsd, it crashes inside thread primitives.
There have been value 8 in field where only 1 or 0 are allowed.
May be some data structures are incorrectly shared between main and
slave threads.
In fact "DOT_NUM_THREADS = 1 in the doxygen configuration"
have same result as "idealThreadCount() returning -1".
Default value for DOT_NUM_THREADS is zero.
The code is src/dot.cpp:
DotManager::DotManager() : m_dotMaps(1007)
{
m_dotRuns.setAutoDelete(TRUE);
m_dotMaps.setAutoDelete(TRUE);
m_queue = new DotRunnerQueue;
int i;
int numThreads = QMIN(32,Config_getInt("DOT_NUM_THREADS"));
if (numThreads==0) numThreads = QMAX(1,QThread::idealThreadCount()+1);
for (i=0;i<numThreads;i++)
{
DotWorkerThread *thread = new DotWorkerThread(i,m_queue);
thread->start();
if (thread->isRunning())
{
m_workers.append(thread);
}
else // no more threads available!
{
delete thread;
}
}
ASSERT(m_workers.count()>0);
}
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]