Basic Signalbehandlung in C ++

Dies ist ein ziemlich einfaches Szenario, aber ich finde nicht zu viele hilfreiche Ressourcen. Ich habe ein C ++ - Programm unter Linux, das die Dateiverarbeitung übernimmt. Liest Zeilen, führt verschiedene Transformationen durch, schreibt Daten in eine Datenbank. Es gibt bestimmte Variablen (in der Datenbank gespeichert), die sich auf die Verarbeitung auswirken, die ich derzeit bei jeder Iteration lese, da ich möchte, dass die Verarbeitung so aktuell wie möglich ist, aber eine leichte Verzögerung ist in Ordnung. Diese Variablen ändern sich jedoch ziemlich selten, und die Lesevorgänge sind im Laufe der Zeit teuer (10 Millionen plus Zeilen pro Tag). Ich könnte die Reads zu jedem @ ausräumn Iterationen oder starten Sie das Programm einfach neu, wenn sich eine Variable ändert, aber diese erscheinen unsinnig.

Ich möchte stattdessen das Programm veranlassen, ein erneutes Lesen der Variablen auszulösen, wenn es ein SIGHUP empfängt. Alles, was ich über die Signalverarbeitung lese, handelt von der C-Signalbibliothek, die ich nicht unbedingt mit den Klassen meines Programms verknüpfen kann. In den Boost-Signalbibliotheken geht es anscheinend eher um die Kommunikation zwischen Objekten als um die Verarbeitung von OS-Signalen.

Kann jemand helfen? Es scheint, dass dies unglaublich einfach sein sollte, aber ich bin ziemlich verrostet mit C ++.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage