ports/www/hiawatha/files/patch-src_hiawatha.c
2022-08-31 10:41:03 -07:00

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) {