diff options
author | Colin Walters <walters@verbum.org> | 2011-05-03 09:52:10 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2011-05-03 10:14:48 -0400 |
commit | ed37970a0405b5681bcd6449d4dc1b4f9080c4fa (patch) | |
tree | eb3cc956fbabb38b4111c3080a1edf27f58bb23f /gio/gcancellable.c | |
parent | e08e70e08d65e2fce142491a6c8fc6068c8008d2 (diff) | |
download | glib-ed37970a0405b5681bcd6449d4dc1b4f9080c4fa.tar.gz |
g_unix_set_fd_nonblocking: New API to control file descriptor blocking state
And use it in relevant places in GLib.
https://bugzilla.gnome.org/show_bug.cgi?id=649225
Diffstat (limited to 'gio/gcancellable.c')
-rw-r--r-- | gio/gcancellable.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/gio/gcancellable.c b/gio/gcancellable.c index c37baff51..32f508118 100644 --- a/gio/gcancellable.c +++ b/gio/gcancellable.c @@ -21,11 +21,10 @@ */ #include "config.h" -#ifdef HAVE_UNISTD_H -#include <unistd.h> +#include "glib.h" +#ifdef G_OS_UNIX +#include "glib-unix.h" #endif -#include <errno.h> -#include <fcntl.h> #include <gioerror.h> #ifdef G_OS_WIN32 #include <windows.h> @@ -193,22 +192,6 @@ g_cancellable_class_init (GCancellableClass *klass) } #ifndef G_OS_WIN32 -static void -set_fd_nonblocking (int fd) -{ -#ifdef F_GETFL - glong fcntl_flags; - fcntl_flags = fcntl (fd, F_GETFL); - -#ifdef O_NONBLOCK - fcntl_flags |= O_NONBLOCK; -#else - fcntl_flags |= O_NDELAY; -#endif - - fcntl (fd, F_SETFL, fcntl_flags); -#endif -} static void set_fd_close_exec (int fd) @@ -235,8 +218,8 @@ g_cancellable_open_pipe (GCancellable *cancellable) /* Make them nonblocking, just to be sure we don't block * on errors and stuff */ - set_fd_nonblocking (priv->cancel_pipe[0]); - set_fd_nonblocking (priv->cancel_pipe[1]); + g_unix_set_fd_nonblocking (priv->cancel_pipe[0], TRUE, NULL); + g_unix_set_fd_nonblocking (priv->cancel_pipe[1], TRUE, NULL); set_fd_close_exec (priv->cancel_pipe[0]); set_fd_close_exec (priv->cancel_pipe[1]); |