From fbc05aa3d8fa1b5f6f5c6d6196f470b0d0270497 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Mon, 15 Jun 2020 15:29:26 +0200 Subject: [PATCH] Fix #34 --- centreon-gorgone/gorgone/class/core.pm | 9 +++++---- .../gorgone/modules/core/httpserver/hooks.pm | 2 ++ centreon-gorgone/gorgone/modules/core/proxy/hooks.pm | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/centreon-gorgone/gorgone/class/core.pm b/centreon-gorgone/gorgone/class/core.pm index d9b69e98b66..d5335737603 100644 --- a/centreon-gorgone/gorgone/class/core.pm +++ b/centreon-gorgone/gorgone/class/core.pm @@ -815,9 +815,9 @@ sub run { my $poll = [@{$gorgone->{poll}}]; my $current_time = time(); - if (time() - $cb_timer_check > 15) { + if (time() - $cb_timer_check > 15 || $gorgone->{stop} == 1) { foreach my $name (keys %{$gorgone->{modules_register}}) { - my $count_module = $gorgone->{modules_register}->{$name}->{check}->( + my ($count_module, $keepalive) = $gorgone->{modules_register}->{$name}->{check}->( logger => $gorgone->{logger}, dead_childs => $gorgone->{return_child}, internal_socket => $gorgone->{internal_socket}, @@ -825,13 +825,14 @@ sub run { poll => $poll, api_endpoints => $gorgone->{api_endpoints}, ); - $cb_timer_check = time(); + $count += $count_module; - if ($count_module == 0) { + if ($count_module == 0 && (!defined($keepalive) || $keepalive == 0)) { $gorgone->unload_module(package => $name); } } + $cb_timer_check = time(); # We can clean return_child. $gorgone->{return_child} = {}; } diff --git a/centreon-gorgone/gorgone/modules/core/httpserver/hooks.pm b/centreon-gorgone/gorgone/modules/core/httpserver/hooks.pm index 529cc28e7ae..9f11b4e3eab 100644 --- a/centreon-gorgone/gorgone/modules/core/httpserver/hooks.pm +++ b/centreon-gorgone/gorgone/modules/core/httpserver/hooks.pm @@ -147,6 +147,8 @@ sub check { if ($stop == 0) { create_child(logger => $options{logger}, api_endpoints => $options{api_endpoints}); } + + last; } $count++ if (defined($httpserver->{running}) && $httpserver->{running} == 1); diff --git a/centreon-gorgone/gorgone/modules/core/proxy/hooks.pm b/centreon-gorgone/gorgone/modules/core/proxy/hooks.pm index 11dc5c22755..36d7c79bf91 100644 --- a/centreon-gorgone/gorgone/modules/core/proxy/hooks.pm +++ b/centreon-gorgone/gorgone/modules/core/proxy/hooks.pm @@ -384,8 +384,8 @@ sub check { delete $parent_ping->{$_}; } } - - return $count; + + return ($count, 1); } sub broadcast {