mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
TcpServerUtils.pm: use optimized removeFromNtfyHash (Forum #114627)
git-svn-id: https://svn.fhem.de/fhem/trunk@22894 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
16bb0ad22d
commit
29d37fd3ba
@ -213,7 +213,7 @@ TcpServer_Close($@)
|
|||||||
delete($hash->{CD});
|
delete($hash->{CD});
|
||||||
delete($selectlist{$name});
|
delete($selectlist{$name});
|
||||||
delete($hash->{FD}); # Avoid Read->Close->Write
|
delete($hash->{FD}); # Avoid Read->Close->Write
|
||||||
%ntfyHash = ();
|
removeFromNtfyHash($name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(defined($hash->{SERVERSOCKET})) { # Server
|
if(defined($hash->{SERVERSOCKET})) { # Server
|
||||||
|
20
fhem/fhem.pl
20
fhem/fhem.pl
@ -2262,6 +2262,7 @@ CommandDelete($$)
|
|||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
delete $defs{$sdev}->{CL};
|
delete $defs{$sdev}->{CL};
|
||||||
|
removeFromNtfyHash($sdev);
|
||||||
|
|
||||||
|
|
||||||
# Delete releated hashes
|
# Delete releated hashes
|
||||||
@ -2391,7 +2392,6 @@ CommandDeleteReading($$)
|
|||||||
eval { "" =~ m/$a[1]/ };
|
eval { "" =~ m/$a[1]/ };
|
||||||
return "Bad regexp $a[1]: $@" if($@);
|
return "Bad regexp $a[1]: $@" if($@);
|
||||||
|
|
||||||
%ntfyHash = ();
|
|
||||||
my @rets;
|
my @rets;
|
||||||
foreach my $sdev (devspec2array($a[0],$cl)) {
|
foreach my $sdev (devspec2array($a[0],$cl)) {
|
||||||
|
|
||||||
@ -5399,6 +5399,22 @@ addToWritebuffer($$@)
|
|||||||
return 1; # success
|
return 1; # success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Faster than createNtfyHash
|
||||||
|
sub
|
||||||
|
removeFromNtfyHash($)
|
||||||
|
{
|
||||||
|
my ($toDel) = @_;
|
||||||
|
return if(!$defs{$toDel} ||
|
||||||
|
!$defs{$toDel}{TYPE} ||
|
||||||
|
!$modules{$defs{$toDel}{TYPE}}{NotifyFn});
|
||||||
|
foreach my $d ( keys %ntfyHash) {
|
||||||
|
my @a = grep { $_ !~ m/^$toDel$/ } @{$ntfyHash{$d}};
|
||||||
|
$ntfyHash{$d} = \@a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Note: always executed after ntfyHash = (); slow for large installations!
|
||||||
sub
|
sub
|
||||||
createNtfyHash()
|
createNtfyHash()
|
||||||
{
|
{
|
||||||
@ -5488,7 +5504,7 @@ FileRead($)
|
|||||||
$forceType = "" if(!defined($forceType));
|
$forceType = "" if(!defined($forceType));
|
||||||
if(ref($param) eq "HASH") {
|
if(ref($param) eq "HASH") {
|
||||||
$fileName = $param->{FileName};
|
$fileName = $param->{FileName};
|
||||||
$forceType = lc($param->{ForceType});
|
$forceType = lc($param->{ForceType}) if($param->{ForceType});
|
||||||
} else {
|
} else {
|
||||||
$fileName = $param;
|
$fileName = $param;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user