help needed to fix contrib/ee crash/exit when receiving SIGWINCH

Jilles Tjoelker jilles at stack.nl
Sat Oct 24 12:04:36 UTC 2009


On Fri, Oct 23, 2009 at 07:56:35PM +0400, Eygene Ryabinkin wrote:
> Hmm, we can transform this code to the following one:
> -----
> errno = 0;
> do {
> 	in = wgetch(text_win);
> } while (errno == EINTR);
> if (in == -1)
> 	exit(0);
> -----
> This won't help with FreeBSD's ncurses, but may be other variants
> will feel much better with such a event loop variant.

That should be:
-----
do
	in = wgetch(text_win);
while (in == -1 && errno == EINTR);
if (in == -1)
	exit(0);
-----

errno should only be checked after failed function calls or for
functions where it is documented that errno should be used to check for
error conditions (example: readdir).

-- 
Jilles Tjoelker


More information about the freebsd-hackers mailing list