Autor Thema: SubProcess.pm mit mehreren Child Prozessen  (Gelesen 556 mal)

Offline zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3416
    • HMCCU
SubProcess.pm mit mehreren Child Prozessen
« am: 16 April 2016, 14:27:31 »
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.

« Letzte Änderung: 16 April 2016, 14:29:55 von zap »
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

 

decade-submarginal