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!


Anmelden zum Antworten