version 1.200, 2017/07/03 08:16:03 |
version 1.201, 2017/07/03 12:38:50 |
|
|
int |
int |
window_pane_destroy_ready(struct window_pane *wp) |
window_pane_destroy_ready(struct window_pane *wp) |
{ |
{ |
if (wp->pipe_fd != -1 && EVBUFFER_LENGTH(wp->pipe_event->output) != 0) |
int n; |
return (0); |
|
|
|
|
if (wp->pipe_fd != -1) { |
|
if (EVBUFFER_LENGTH(wp->pipe_event->output) != 0) |
|
return (0); |
|
if (ioctl(wp->fd, FIONREAD, &n) != -1 && n > 0) |
|
return (0); |
|
} |
|
|
if (~wp->flags & PANE_EXITED) |
if (~wp->flags & PANE_EXITED) |
return (0); |
return (0); |
if (~wp->flags & PANE_ERROR) |
|
return (0); |
|
return (1); |
return (1); |
} |
} |
|
|
|
|
struct window_pane *wp = data; |
struct window_pane *wp = data; |
|
|
log_debug("%%%u error", wp->id); |
log_debug("%%%u error", wp->id); |
wp->flags |= PANE_ERROR; |
wp->flags |= PANE_EXITED; |
|
|
if (window_pane_destroy_ready(wp)) |
if (window_pane_destroy_ready(wp)) |
server_destroy_pane(wp, 1); |
server_destroy_pane(wp, 1); |