From 72bc03ac4c0fa3757d16363ab9cacb0a152275f9 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Sat, 14 Nov 2009 17:48:39 +0000 Subject: Sync OpenBSD patchset 535: Destroy panes immediately rather than checking them all every loop. --- server-fn.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'server-fn.c') 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 @@ -316,6 +316,27 @@ server_unlink_window(struct session *s, struct winlink *wl) server_redraw_session_group(s); } +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) { -- cgit