summaryrefslogtreecommitdiffstats
path: root/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'server.c')
-rw-r--r--server.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/server.c b/server.c
index f1df1aa4..6fef468b 100644
--- a/server.c
+++ b/server.c
@@ -24,9 +24,7 @@
#include <sys/wait.h>
#include <errno.h>
-#include <event.h>
#include <fcntl.h>
-#include <paths.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -104,7 +102,7 @@ server_check_marked(void)
}
/* Create server socket. */
-static int
+int
server_create_socket(int flags, char **cause)
{
struct sockaddr_un sa;
@@ -163,6 +161,10 @@ server_tidy_event(__unused int fd, __unused short events, __unused void *data)
format_tidy_jobs();
+#ifdef HAVE_MALLOC_TRIM
+ malloc_trim(0);
+#endif
+
log_debug("%s: took %llu milliseconds", __func__,
(unsigned long long)(get_timer() - t));
evtimer_add(&server_ev_tidy, &tv);
@@ -213,7 +215,11 @@ server_start(struct tmuxproc *client, int flags, struct event_base *base,
TAILQ_INIT(&message_log);
gettimeofday(&start_time, NULL);
+#ifdef HAVE_SYSTEMD
+ server_fd = systemd_create_socket(flags, &cause);
+#else
server_fd = server_create_socket(flags, &cause);
+#endif
if (server_fd != -1)
server_update_socket();
if (~flags & CLIENT_NOFORK)