diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-04-28 22:01:18 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-04-28 22:01:18 +0100 |
commit | 3a8e56b282161ab4feb728bfedba77aa35093a0a (patch) | |
tree | ac58d53220819d892f1e8177a7cf63ffddac6907 /alerts.c | |
parent | 36202a63e979f41943003d49748eaebe5776bf7f (diff) | |
parent | 0f2f783584c62879a1182972e915f550bf23f00a (diff) | |
download | rtmux-3a8e56b282161ab4feb728bfedba77aa35093a0a.tar.gz rtmux-3a8e56b282161ab4feb728bfedba77aa35093a0a.tar.bz2 rtmux-3a8e56b282161ab4feb728bfedba77aa35093a0a.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'alerts.c')
-rw-r--r-- | alerts.c | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -64,7 +64,7 @@ alerts_callback(__unused int fd, __unused short events, __unused void *arg) TAILQ_REMOVE(&alerts_list, w, alerts_entry); w->flags &= ~WINDOW_ALERTFLAGS; - window_remove_ref(w); + window_remove_ref(w, __func__); } alerts_fired = 0; } @@ -144,16 +144,18 @@ alerts_queue(struct window *w, int flags) log_debug("@%u alerts flags added %#x", w->id, flags); } - if (!w->alerts_queued) { - w->alerts_queued = 1; - TAILQ_INSERT_TAIL(&alerts_list, w, alerts_entry); - w->references++; - } + if (alerts_enabled(w, flags)) { + if (!w->alerts_queued) { + w->alerts_queued = 1; + TAILQ_INSERT_TAIL(&alerts_list, w, alerts_entry); + window_add_ref(w, __func__); + } - if (!alerts_fired && alerts_enabled(w, flags)) { - log_debug("alerts check queued (by @%u)", w->id); - event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL); - alerts_fired = 1; + if (!alerts_fired) { + log_debug("alerts check queued (by @%u)", w->id); + event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL); + alerts_fired = 1; + } } } |