FHEM Forum

FHEM => Sonstiges => Thema gestartet von: noansi am 13 Mai 2014, 00:16:10

Titel: [patch] DevIo.pm Änderungsvorschlag
Beitrag von: noansi am 13 Mai 2014, 00:16:10
Hallo Rudolf,

hier ein Patchvorschlag zu DevIo.pm.

--- ./DevIo.pm 2014-05-12 23:40:46.000000000 +0200
+++ ../DevIo.pm 2014-05-12 23:50:19.152733084 +0200
@@ -323,7 +323,7 @@
     my $ret  = &$initfn($hash);
     if($ret) {
       DevIo_CloseDev($hash);
-      Log3 $name, 1, "Cannot init $dev, ignoring it";
+      Log3 $name, 1, "Cannot init $dev, ignoring it ($name)";
     }
   }

@@ -370,6 +370,7 @@
   delete($selectlist{"$name.$dev"});
   delete($readyfnlist{"$name.$dev"});
   delete($hash->{FD});
+  delete($hash->{EXCEPT_FD});
}

sub
@@ -383,7 +384,7 @@

   return if(!defined($hash->{FD}));                 # Already deleted or RFR

-  Log3 $name, 1, "$dev disconnected, waiting to reappear";
+  Log3 $name, 1, "$dev disconnected, waiting to reappear ($name)";
   DevIo_CloseDev($hash);
   $readyfnlist{"$name.$dev"} = $hash;               # Start polling
   $hash->{STATE} = "disconnected";


Wenn ein DevIo Nutzer den EXCEPT_FD benutzt und nicht vor jedem DevIo_Disconnected oder DevIo_CloseDev und anschließendem DevIo_OpenDev löscht, dann führt das u.U. in MAIN wegen einem ungültigen Filedescriptor zu einem die wegen select error, wie ich feststellen musste.

Die ergänzte Ausgabe des Namens hilft Unerfahrenen, die Geräte im Log zu unterscheiden, insbesondere bei USB.

Gruß und Danke, Ansgar.
Titel: Antw:[patch] DevIo.pm Änderungsvorschlag
Beitrag von: rudolfkoenig am 13 Mai 2014, 09:17:03
Danke, habs eingecheckt.