[patch] DevIo.pm Änderungsvorschlag

Begonnen von noansi, 13 Mai 2014, 00:16:10

Vorheriges Thema - Nächstes Thema

noansi

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.

rudolfkoenig