Sync OpenBSD patchset 535:

Destroy panes immediately rather than checking them all every loop.
This commit is contained in:
Tiago Cunha
2009-11-14 17:48:39 +00:00
parent 56447d73c1
commit 72bc03ac4c
6 changed files with 32 additions and 75 deletions

View File

@@ -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>
@@ -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)
{