g_unix_open_pipe: Add missing F_SETFD
authorColin Walters <walters@verbum.org>
Tue, 11 Dec 2012 21:53:48 +0000 (16:53 -0500)
committerColin Walters <walters@verbum.org>
Tue, 11 Dec 2012 22:12:19 +0000 (17:12 -0500)
Spotted by Ray Strode <rstrode@redhat.com>

While we're here, microoptimize by skipping the fcntl() calls if flags
is 0.

https://bugzilla.gnome.org/show_bug.cgi?id=690069

glib/glib-unix.c

index 9e87bb5..9cc2716 100644 (file)
@@ -105,7 +105,11 @@ g_unix_open_pipe (int     *fds,
   ecode = pipe (fds);
   if (ecode == -1)
     return g_unix_set_error_from_errno (error, errno);
-  ecode = fcntl (fds[0], flags);
+
+  if (flags == 0)
+    return TRUE;
+
+  ecode = fcntl (fds[0], F_SETFD, flags);
   if (ecode == -1)
     {
       int saved_errno = errno;
@@ -113,7 +117,7 @@ g_unix_open_pipe (int     *fds,
       close (fds[1]);
       return g_unix_set_error_from_errno (error, saved_errno);
     }
-  ecode = fcntl (fds[1], flags);
+  ecode = fcntl (fds[1], F_SETFD, flags);
   if (ecode == -1)
     {
       int saved_errno = errno;