boost::thread auf timeout überwachen
-
Hi,
ich schreibe grade einenen kleinen daemon, der als JobQueue für eine
Tabelle in einer Datenbank fungiert.Ganz grob ist der Ablauf folgender:
Der daemon liest in regelmässigen Abständen die Tabelle. Sobald neue
Einträge vorhanden sind, wird mittles der tabelleninhalte eine externe
applikation in einem eigenen thread ausgeführt. Deswegen in nem eigenen Thread, weil mehrere Jobtypen gleichzeitig laufen können sollen.Ich würde jetzt gerne zur sicherheit ein timeout implementieren, damit
ein bestimmter thread abgebrochen werden kann.Für die thread implementierung verwende ich die boost library.
Meine erste Idee wäre es, die Threads in eine std::map zu packen, mit dem
timestamp der threaderstellung als key, und dann einfach regelmässig die
map durchzugehen. Wenn ein timestamp den timout überschreitet, breche
ich den dazugehörigen thread ab.Da ich das erste mal mit threads arbeite, wollte bei jemandem mit mehr
Erfahrung nachfragen, ob diese Logik in Ordnung ist, oder aus thread-technischen Gründen nicht zu empfehlen ist.Vielen Dank!