From a75c03970e6903d6b647e89b50e3be9bbe0cb489 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Tue, 25 Aug 2015 19:55:07 +0000 Subject: [PATCH] Blocking.pm: some more Win support (Forum #40350) git-svn-id: https://svn.fhem.de/fhem/trunk@9131 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/Blocking.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fhem/FHEM/Blocking.pm b/fhem/FHEM/Blocking.pm index 17240aa00..3fe9fd9aa 100644 --- a/fhem/FHEM/Blocking.pm +++ b/fhem/FHEM/Blocking.pm @@ -106,7 +106,10 @@ BlockingInformParent($;$$) if(!$telnetClient) { my $addr = "localhost:$defs{$telnetDevice}{PORT}"; $telnetClient = IO::Socket::INET->new(PeerAddr => $addr); - Log 1, "CallBlockingFn: Can't connect to $addr: $@" if(!$telnetClient); + if(!$telnetClient) { + Log 1, "CallBlockingFn: Can't connect to $addr: $@"; + return; + } } if(defined($param)) { @@ -138,6 +141,11 @@ sub BlockingKill($) { my $h = shift; + + # MaxNr of concurrent forked processes @Win is 64, and must use wait as + # $SIG{CHLD} = 'IGNORE' does not work. + wait if($^O =~ m/Win/); + if($^O !~ m/Win/) { if($h->{pid} && kill(9, $h->{pid})) { Log 1, "Timeout for $h->{fn} reached, terminated process $h->{pid}";