Blocking.pm - Benutzen von POSIX::_exit(0) um den Fork zu beenden

Begonnen von Markus Bloch, 24 Februar 2013, 15:11:25

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo Rudi,

ich wurde von Johannes auf einen Fehler aufmerksam gemacht der Auftritt, wenn man PRESENCE und DbLog zusammen verwendet. Dabei schmiert immer beim beenden eines Forks die MySQL-Verbindung ab, da auch hier wieder die File-Deskriptoren gelöscht werden.

Dies liegt am exit(0) Befehl mit dem der Fork ja auch beendet werden soll. Dabei werden aber eben auch die FileDeskriptoren auf Unix-Systemen geschlossen.

Laut http://perldoc.perl.org/perlfork.html wird daher hier der Aufruf von POSIX::_exit(0) empfohlen um das schließen von solchen Verbindungen zu verhindern.

Ich würde daher vorschlagen in Blocking.pm die Zeile 112 in folgendes zu ändern.


POSIX::_exit(0);


Ich habe dies erfolgreich unter Linux und auf der FritzBox getestet. Für Windows hat dies keine Relevantnis.

Währe toll, wenn du das einchecken könntest.

Vielen Dank

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig