billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=273a85af0050bb0f604c88dcf0942a60eb848db2
commit 273a85af0050bb0f604c88dcf0942a60eb848db2 Author: Boris Faure <bill...@gmail.com> Date: Tue Dec 6 21:49:15 2016 +0100 termpty: handle BSD special case when the other side of the tty pair has quit --- src/bin/termpty.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index dcdfdfc..0d5f77d 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -172,6 +172,13 @@ _cb_fd_read(void *data, Ecore_Fd_Handler *fd_handler) if (ty->fd == -1) return ECORE_CALLBACK_CANCEL; +/* it seems the BSDs can not read from this side of the pair if the other side + * is closed */ +#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__NetBSD__) + if (ty->pid == -1) + return ECORE_CALLBACK_CANCEL; +#endif + // read up to 64 * 4096 bytes for (reads = 0; reads < 64; reads++) { --