Right now, a race condition might happen. Signal FileContentIndexer::done is connected to FileIndexScheduler::scheduleIndexing,
which does scheduling only when there is no active threads (NB: FileContentIndexer is running inside one).
The signal is emitted in the very end of FileContentIndexer::run, which should be fine. However, after run is finished,
it also calls destructor for local ExtractorProcess process, which destroys QProcess m_extractorProcess, which itself waits for the process to finish.
If FileContentIndexer::done signal is processed before process is finished, scheduling won't happen and baloo will be stuck in ContentIndexing state.
(which is exactly what pointed me to this issue: File Indexer Monitor application showed that baloo is stuck in ContentIndexing, when it clearly should be Idle)
I suggest instead to emit FileContentIndexer::done signal only when ExtractorProcess is finished.