mirror of
https://git.freebsd.org/ports.git
synced 2025-05-04 07:27:38 -04:00
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
--- src/hiawatha.c.orig 2021-07-22 15:18:13 UTC
|
|
+++ src/hiawatha.c
|
|
@@ -141,8 +141,12 @@ void task_runner(t_config *config) {
|
|
int delay = 0;
|
|
time_t now;
|
|
#ifdef ENABLE_LOADCHECK
|
|
+#ifdef HAVE_GETLOADAVG
|
|
+ double loadavg[1];
|
|
+#else
|
|
FILE *load_fp = NULL;
|
|
char load_str[50], *c;
|
|
+#endif
|
|
#ifdef ENABLE_MONITOR
|
|
int load_monitor_timer = 0;
|
|
#endif
|
|
@@ -213,6 +217,21 @@ void task_runner(t_config *config) {
|
|
|
|
#ifdef ENABLE_LOADCHECK
|
|
if (config->max_server_load > 0) {
|
|
+#ifdef HAVE_GETLOADAVG
|
|
+ if (getloadavg(loadavg, 1) >= 1) {
|
|
+ current_server_load = loadavg[0];
|
|
+#ifdef ENABLE_MONITOR
|
|
+ if (config->monitor_enabled) {
|
|
+ if ((current_server_load > config->max_server_load) && (load_monitor_timer == 0)) {
|
|
+ monitor_event("High server load (%0.2f)", current_server_load);
|
|
+ load_monitor_timer = 60;
|
|
+ }
|
|
+ }
|
|
+#endif
|
|
+ } else {
|
|
+ current_server_load = 0;
|
|
+ }
|
|
+#else
|
|
if ((load_fp = fopen("/proc/loadavg", "r")) != NULL) {
|
|
if (fgets(load_str, 49, load_fp) != NULL) {
|
|
load_str[49] = '\0';
|
|
@@ -238,6 +257,7 @@ void task_runner(t_config *config) {
|
|
} else {
|
|
current_server_load = 0;
|
|
}
|
|
+#endif
|
|
|
|
#ifdef ENABLE_MONITOR
|
|
if (load_monitor_timer > 0) {
|