mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 23:46:17 +01:00
Merge branch 'wip/smcv/o-nonblock' into 'main'
glib-unix: Clean up use of O_NONBLOCK See merge request GNOME/glib!3459
This commit is contained in:
commit
c91917b1be
@ -37,6 +37,12 @@ G_STATIC_ASSERT (G_ALIGNOF (gssize) == G_ALIGNOF (ssize_t));
|
|||||||
G_STATIC_ASSERT (sizeof (GPid) == sizeof (pid_t));
|
G_STATIC_ASSERT (sizeof (GPid) == sizeof (pid_t));
|
||||||
G_STATIC_ASSERT (G_ALIGNOF (GPid) == G_ALIGNOF (pid_t));
|
G_STATIC_ASSERT (G_ALIGNOF (GPid) == G_ALIGNOF (pid_t));
|
||||||
|
|
||||||
|
/* If this assertion fails, then the ABI of g_unix_open_pipe() would be
|
||||||
|
* ambiguous on this platform.
|
||||||
|
* On Linux, usually O_NONBLOCK == 04000 and FD_CLOEXEC == 1, but the same
|
||||||
|
* might not be true everywhere. */
|
||||||
|
G_STATIC_ASSERT (O_NONBLOCK != FD_CLOEXEC);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:gunix
|
* SECTION:gunix
|
||||||
* @title: UNIX-specific utilities and integration
|
* @title: UNIX-specific utilities and integration
|
||||||
@ -133,21 +139,9 @@ g_unix_set_fd_nonblocking (gint fd,
|
|||||||
return g_unix_set_error_from_errno (error, errno);
|
return g_unix_set_error_from_errno (error, errno);
|
||||||
|
|
||||||
if (nonblock)
|
if (nonblock)
|
||||||
{
|
fcntl_flags |= O_NONBLOCK;
|
||||||
#ifdef O_NONBLOCK
|
|
||||||
fcntl_flags |= O_NONBLOCK;
|
|
||||||
#else
|
|
||||||
fcntl_flags |= O_NDELAY;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
fcntl_flags &= ~O_NONBLOCK;
|
||||||
#ifdef O_NONBLOCK
|
|
||||||
fcntl_flags &= ~O_NONBLOCK;
|
|
||||||
#else
|
|
||||||
fcntl_flags &= ~O_NDELAY;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fcntl (fd, F_SETFL, fcntl_flags) == -1)
|
if (fcntl (fd, F_SETFL, fcntl_flags) == -1)
|
||||||
return g_unix_set_error_from_errno (error, errno);
|
return g_unix_set_error_from_errno (error, errno);
|
||||||
|
Loading…
Reference in New Issue
Block a user