|
From: <buc...@us...> - 2010-03-10 22:28:12
|
Revision: 176
http://devmon.svn.sourceforge.net/devmon/?rev=176&view=rev
Author: buchanmilne
Date: 2010-03-10 22:28:03 +0000 (Wed, 10 Mar 2010)
Log Message:
-----------
Close unnecessary sockets
Modified Paths:
--------------
trunk/modules/dm_snmp.pm
Modified: trunk/modules/dm_snmp.pm
===================================================================
--- trunk/modules/dm_snmp.pm 2010-03-10 22:24:30 UTC (rev 175)
+++ trunk/modules/dm_snmp.pm 2010-03-10 22:28:03 UTC (rev 176)
@@ -355,15 +355,21 @@
if($pid = fork) {
# Parent code here
- close $g{'forks'}{$num}{'PS'}; # dont need to communicate with ourself
+ do_log("Fork number $num started with pid $pid") if $g{'debug'};
+ close $g{'forks'}{$num}{'PS'} or do_log("Closing socket to ourself failed: $!\n"); # dont need to communicate with ourself
$g{'forks'}{$num}{'pid'} = $pid;
+ $g{'forks'}{$num}{'time'} = time;
$g{'forks'}{$num}{'CS'}->blocking(0);
}
elsif(defined $pid) {
# Child code here
$g{'parent'} = 0; # We arent the parent any more...
- close $g{'forks'}{$num}{'CS'}; # Same as above
- $0 = 'devmon'; # Remove our 'master' tag
+ do_log("DEBUG SNMP: Fork $num using sockets $g{'forks'}{$num}{'PS'} <-> $g{'forks'}{$num}{'CS'} for IPC") if $g{'debug'};
+ foreach (sort {$a <=> $b} keys %{$g{'forks'}}) {
+ do_log("DEBUG SNMP: Fork $num closing socket (child $_) $g{'forks'}{$_}{'PS'}") if $g{'debug'};
+ $g{'forks'}{$_}{'CS'}->close or do_log("Closing socket for fork $_ failed: $!"); # Same as above
+ }
+ $0 = "devmon-$num"; # Remove our 'master' tag
fork_sub($num); # Enter our neverending query loop
exit; # We should never get here, but just in case
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|