All right now, just digged through this and feeling quite a little confused... :roll:
First: As you two supposed it seems to be drowning in the Codecompletion ParserThreads. How come I also saw the same effect yesterday with all plugins disabled, I don't know.
I have saved a couple of backtraces here, will analyze these and gather some more maybe tomorrow.
No idea how this is supposed to work though and it's a difficult to dig through this kind of stuff on your own...
Well, all starts with Parser::BatchParse().
After the first few seconds (~10s on ~30 open files in the project) I could catch up on Parser::Clear, called from its destructor which was called by a wxTimerEvent in CodeCompletion::OnFunctionsParsingTimer().
Following is Parser::HandleIncludes() but there i stopped for now (got a break on OnParseFile() with 120 files includes on the line -- BTW: disabling breakpoints during gdb-session is broken (again?)).
My questions:
Why is the Parser destroyed from a Timer-Event? Is this supposed to be a watchdog or kind of?
Why then does it come back only after 10-15s? Why a timer, why not a recursion limit? What does it take this that long to parse little more than 100 files anyway?
I might have another look at Parser::m_batchtimer. That is kind of a watchdog, worker-threads are supposed to be done when it times out (OnBatchTimer). Hmmm...
One more idea on dual-core strangeness: In Parse() (+498) wxThread::IsMain() is queried, setting m_IsBatch, starting the batch (m_Pool.BatchBegin()

. I see, it's supposed to be the first one called, getting the whole gang started (but... shouldn't be better set out more explicitely, no? m_IsBatch is set from the beginning, why then reset it here?).
Now, what if wxThread::IsMain() will return true on each of my cores? Batch would get started twice... Just another idea, look into this more closely later... still, the time parsing takes is about 10 times what might be reasonable.
The above may sound like ranting on the code, but I am aware it's 99% my bad understanding. I really do not mean to offend anybody.

For now, thanks reading.