diff options
author | nicm <nicm> | 2021-03-11 07:08:18 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-03-11 07:08:18 +0000 |
commit | ee0df1b8f8a9099fbd67a73c9fb20b89c64d6106 (patch) | |
tree | ccc065d063e1c1849b144767c26c11a3f9cc0277 /server.c | |
parent | 3eb91efba160eff0b077a5fee902edb632f7fdca (diff) | |
download | rtmux-ee0df1b8f8a9099fbd67a73c9fb20b89c64d6106.tar.gz rtmux-ee0df1b8f8a9099fbd67a73c9fb20b89c64d6106.tar.bz2 rtmux-ee0df1b8f8a9099fbd67a73c9fb20b89c64d6106.zip |
Tidy old jobs every hour instead of every 30 seconds.
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 26 |
1 files changed, 22 insertions, 4 deletions
@@ -48,6 +48,7 @@ static int server_fd = -1; static uint64_t server_client_flags; static int server_exit; static struct event server_ev_accept; +static struct event server_ev_tidy; struct cmd_find_state marked_pane; @@ -151,15 +152,29 @@ fail: return (-1); } +/* Tidy up every hour. */ +static void +server_tidy_event(__unused int fd, __unused short events, __unused void *data) +{ + struct timeval tv = { .tv_sec = 3600 }; + uint64_t t = get_timer(); + + format_tidy_jobs(); + + log_debug("%s: took %llu milliseconds", __func__, get_timer() - t); + evtimer_add(&server_ev_tidy, &tv); +} + /* Fork new server. */ int server_start(struct tmuxproc *client, int flags, struct event_base *base, int lockfd, char *lockfile) { - int fd; - sigset_t set, oldset; - struct client *c = NULL; - char *cause = NULL; + int fd; + sigset_t set, oldset; + struct client *c = NULL; + char *cause = NULL; + struct timeval tv = { .tv_sec = 3600 }; sigfillset(&set); sigprocmask(SIG_BLOCK, &set, &oldset); @@ -218,6 +233,9 @@ server_start(struct tmuxproc *client, int flags, struct event_base *base, free(cause); } + evtimer_set(&server_ev_tidy, server_tidy_event, NULL); + evtimer_add(&server_ev_tidy, &tv); + server_add_accept(0); proc_loop(server_proc, server_loop); |