aboutsummaryrefslogtreecommitdiff
path: root/server-fn.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-11-14 17:48:39 +0000
committerTiago Cunha <tcunha@gmx.com>2009-11-14 17:48:39 +0000
commit72bc03ac4c0fa3757d16363ab9cacb0a152275f9 (patch)
tree59c1d12870a47c1e295a9258ca44208594cfffb4 /server-fn.c
parent56447d73c1348c708f36a624416c008e6b262293 (diff)
downloadrtmux-72bc03ac4c0fa3757d16363ab9cacb0a152275f9.tar.gz
rtmux-72bc03ac4c0fa3757d16363ab9cacb0a152275f9.tar.bz2
rtmux-72bc03ac4c0fa3757d16363ab9cacb0a152275f9.zip
Sync OpenBSD patchset 535:
Destroy panes immediately rather than checking them all every loop.
Diffstat (limited to 'server-fn.c')
-rw-r--r--server-fn.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/server-fn.c b/server-fn.c
index 4684ac8c..607c757f 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -1,4 +1,4 @@
-/* $Id: server-fn.c,v 1.96 2009-11-08 23:11:23 tcunha Exp $ */
+/* $Id: server-fn.c,v 1.97 2009-11-14 17:48:39 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -317,6 +317,27 @@ server_unlink_window(struct session *s, struct winlink *wl)
}
void
+server_destroy_pane(struct window_pane *wp)
+{
+ struct window *w = wp->window;
+
+ close(wp->fd);
+ bufferevent_free(wp->event);
+ wp->fd = -1;
+
+ if (options_get_number(&w->options, "remain-on-exit"))
+ return;
+
+ layout_close_pane(wp);
+ window_remove_pane(w, wp);
+
+ if (TAILQ_EMPTY(&w->panes))
+ server_kill_window(w);
+ else
+ server_redraw_window(w);
+}
+
+void
server_destroy_session_group(struct session *s)
{
struct session_group *sg;