--- a/src/qtgui/idxthread.cpp
+++ b/src/qtgui/idxthread.cpp
@@ -88,6 +88,11 @@
Pidfile pidfile(myconf->getPidfile());
if (pidfile.open() != 0) {
+ // Have to sleep a little here else the main thread
+ // won't see the status change because it only tests
+ // after seeing IDXTS_NULL at least once. Better
+ // interlock needed...
+ sleep(2);
indexingstatus = IDXTS_ERROR;
indexingReason = "Indexing failed: other process active? " +
pidfile.getreason();
@@ -101,10 +106,11 @@
indexingstatus = IDXTS_ERROR;
indexingReason = "Indexing failed: " + indexer->getReason();
}
- delete myconf;
pidfile.close();
delete indexer;
}
+ delete myconf;
+ myconf = 0;
rezero = false;
action_mutex.lock();
}