Prozess soll auf anderen warten !
-
Hallo,
hab ein kleines Programm mit 2 Prozessen die beide zur selben Zeit gestartet werden und auf 1 identische Variable zugreifen sollen. Prozess 1 schreibt etwas in die Variable hinein und Prozess 2 liest das ganze aus. Wie bekomm ich es hin das Prozess 2 solange wartet mit dem auslesen bis Prozess 1 etwas hineingeschrieben hat ? Gibts da irgend ne Funktion oder ein Flag ? Suche nach einer kurzen und simplen Lösung, Semaphoren wären für mein Beispiel zu aufwendig.MfG GerdH.
-
die einfachste Lösung die mir einfällt wär mittels eines Signals
// Prozess 1 void handle(int) { } int prozess1() { signal(SIGUSR1, handle); //... pause(); //warte bis Signal kommt //... } int prozess2() { //... kill(prozess1_pid, SIGUSR1); }
-
Was ist das für eine Variable, in die geschrieben wird?
Ich würde eine Pipe nehmen. Da kann der zweite Prozess anfangen zu lesen, wenn es noch gar nichts zu lesen gibt. Der wartet einfach schlafend auf Prozess 1.