+ $logger->Log("debug", "All workers are stopped now...");
+}
+
+#
+## Reload function.
+#
+## This function will get called if the signal handler recieves a "SIGHUP" signal,
+## or the reload command will be sent via socket connection. It is responsible for
+## reloading all configure options and stopping/starting the worker threads.
+#
+sub Reload () {
+ # Log reload.
+ $logger->Log("info", "Reload configuration...");
+
+ # Stop all running workers.
+ &StopWorkers();
+
+ # Re-read configuration file.
+ %mainsettings = &Guardian::Config::UseConfig($cmdargs{"config"});
+
+ # Update Logger settings.
+ $logger = Guardian::Logger->Init(%mainsettings);
+
+ # Update logger object in mainsettings hash.
+ $mainsettings{Logger} = $logger;
+
+ # Update ignore list.
+ &Guardian::Events::GenerateIgnoreList($mainsettings{IgnoreFile});
+
+ # Re-generate hash of monitored files.
+ %monitored_files = &Guardian::Base::GenerateMonitoredFiles(\%mainsettings, \%monitored_files);
+
+ # Restart the worker threads.
+ &StartWorkers();