mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-03 19:49:02 +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($selectlist{$name});
|
||||
delete($hash->{FD}); # Avoid Read->Close->Write
|
||||
%ntfyHash = ();
|
||||
removeFromNtfyHash($name);
|
||||
}
|
||||
|
||||
if(defined($hash->{SERVERSOCKET})) { # Server
|
||||
|
20
fhem/fhem.pl
20
fhem/fhem.pl
@ -2262,6 +2262,7 @@ CommandDelete($$)
|
||||
next;
|
||||
}
|
||||
delete $defs{$sdev}->{CL};
|
||||
removeFromNtfyHash($sdev);
|
||||
|
||||
|
||||
# Delete releated hashes
|
||||
@ -2391,7 +2392,6 @@ CommandDeleteReading($$)
|
||||
eval { "" =~ m/$a[1]/ };
|
||||
return "Bad regexp $a[1]: $@" if($@);
|
||||
|
||||
%ntfyHash = ();
|
||||
my @rets;
|
||||
foreach my $sdev (devspec2array($a[0],$cl)) {
|
||||
|
||||
@ -5399,6 +5399,22 @@ addToWritebuffer($$@)
|
||||
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
|
||||
createNtfyHash()
|
||||
{
|
||||
@ -5488,7 +5504,7 @@ FileRead($)
|
||||
$forceType = "" if(!defined($forceType));
|
||||
if(ref($param) eq "HASH") {
|
||||
$fileName = $param->{FileName};
|
||||
$forceType = lc($param->{ForceType});
|
||||
$forceType = lc($param->{ForceType}) if($param->{ForceType});
|
||||
} else {
|
||||
$fileName = $param;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user