SubProcess.pm mit mehreren Child Prozessen

Begonnen von zap, 16 April 2016, 14:27:31

Vorheriges Thema - Nächstes Thema

zap

Grundsätzlich ist es möglich, mit dem Modul SubProcess.pm in einem Modul mehrere Child Prozesse zu erzeugen. Was ich nicht hin bekomme ist die Kommunikation mehrerer Childs mit dem Hauptprozess. Es scheitert an diesen Zeilen im Hauptprozess, die dafür sorgen, dass die _Read() Funktion aufgerufen wird:


$hash->{FD} = fileno $child->child ();
$selectlist{"$name.$pid"} = $hash;


Zeile 2 ist unkritisch, leider hat aber der Hash des Hauptprozesses nur einen FD Eintrag. Hat jemand eine Idee, wie ich die Socket-Deskriptoren von 2 oder mehr Child-Prozessen "registrieren" kann? Ziel wäre, dass bei eingehenden Daten von einem der n Child-Prozesse die Read() Funktion des Hauptprozesses aufgerufen wird.

Ich habe ein Beispiel gefunden, bei dem Kopien des Hashs angelegt werden. Das ist aber ein ziemliches Gebastel und es ist zu befürchten, dass das bei einer Anpassung von FHEM nicht mehr funktioniert.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB