diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-03-11 08:01:29 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-03-11 08:01:29 +0000 |
commit | 12cfd0d22b630ead9c6d739b13c3409485ea551c (patch) | |
tree | ee2535b2b0e0075078cae6a2eb0bf5171d11078d /server.c | |
parent | 541872bc5754a8f4daa84f23043c356f7ac4f663 (diff) | |
parent | ee0df1b8f8a9099fbd67a73c9fb20b89c64d6106 (diff) | |
download | rtmux-12cfd0d22b630ead9c6d739b13c3409485ea551c.tar.gz rtmux-12cfd0d22b630ead9c6d739b13c3409485ea551c.tar.bz2 rtmux-12cfd0d22b630ead9c6d739b13c3409485ea551c.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 26 |
1 files changed, 22 insertions, 4 deletions
@@ -46,6 +46,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; @@ -149,15 +150,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); @@ -216,6 +231,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); |