From 1bbaeb7a85c57ccedd6987d9c0e6157e2aba3563 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 18 Feb 2011 16:47:03 +0100 Subject: gui-wizard-gtk: ensure we don't block on reading analyze output Signed-off-by: Denys Vlasenko --- src/lib/xfuncs.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/xfuncs.c b/src/lib/xfuncs.c index be02c56a..f451693a 100644 --- a/src/lib/xfuncs.c +++ b/src/lib/xfuncs.c @@ -26,12 +26,18 @@ /* Turn on nonblocking I/O on a fd */ int ndelay_on(int fd) { - return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); + int flags = fcntl(fd, F_GETFL); + if (flags & O_NONBLOCK) + return 0; + return fcntl(fd, F_SETFL, flags | O_NONBLOCK); } int ndelay_off(int fd) { - return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_NONBLOCK); + int flags = fcntl(fd, F_GETFL); + if (!(flags & O_NONBLOCK)) + return 0; + return fcntl(fd, F_SETFL, flags & ~O_NONBLOCK); } int close_on_exec_on(int fd) -- cgit