Mal wieder ein Problem aus dem Dunstkreis Threads.
Neben meiner Anwendung läuft ein Thread, der Debugmeldungen in eine SQLite-Datenbank-schreibt. Diese Meldungen werden vom Hauptprogramm mittels Signal an diesen Thread übergeben.
Soweit so gut - es funktioniert solange ganz gut, wie sich die Belastung in Grenzen hält. Aber einer gewissen Belastung jedoch scheint die Queue einfach überzulaufen. Offensichtlich kommt der Thread nicht mehr dazu, die ganzen Einträge wegzuschreiben (möglicherweise könnte man natürlich auch über die Priorität der einzelnen Threads ein wenig gegensteuern). Jedenfalls steigt auf einmal der Speicherverbrauch steil an und wenn man das separat geschriebene Logfile (qDebug umgeleitet) betrachtet, sieht man, das nachdem der Hauptthread ein wenig zur Ruhe gekommen ist, der DebugThread die aufgelaufenen Signale abarbeitet.
Meine Frage:
Gibt es eine Möglichkeit, die Anzahl der sich stauenden Signale zu ermitteln - so das man in einem solchen Fall die Anzahl der neu hinzukommenden Signale zumindest drosseln könnte? Das ganze natürlich mit Qt-Bordmitteln, also ohne jetzt einen Zähler einzubauen, der dann ja wieder von beiden Threads angesteuert werden müsste, was dann die anzahl der Probleme wohl eher erhöhen würde
Gruss
Tilman Räger