Merge branch 'o-nonblock-more' into 'main'

glib-unix: Accept O_CLOEXEC as well as FD_CLOEXEC in g_unix_open_pipe()

See merge request GNOME/glib!3538
This commit is contained in:
Michael Catanzaro
2023-08-16 18:13:13 +00:00
10 changed files with 60 additions and 23 deletions

View File

@@ -3188,7 +3188,7 @@ splice_stream_with_progress (GInputStream *in,
fd_in = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (in));
fd_out = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (out));
if (!g_unix_open_pipe (buffer, FD_CLOEXEC, error))
if (!g_unix_open_pipe (buffer, O_CLOEXEC, error))
return FALSE;
/* Try a 1MiB buffer for improved throughput. If that fails, use the default

View File

@@ -604,7 +604,7 @@ make_pipe (gint pipe_fds[2],
GError **error)
{
#if defined(G_OS_UNIX)
return g_unix_open_pipe (pipe_fds, FD_CLOEXEC, error);
return g_unix_open_pipe (pipe_fds, O_CLOEXEC, error);
#elif defined(G_OS_WIN32)
if (_pipe (pipe_fds, 4096, _O_BINARY) < 0)
{

View File

@@ -306,9 +306,9 @@ test_once (Fixture *f,
GDBusMessage *message;
gboolean pipe_res;
pipe_res = g_unix_open_pipe (f->server_to_client, FD_CLOEXEC, &f->error);
pipe_res = g_unix_open_pipe (f->server_to_client, O_CLOEXEC, &f->error);
g_assert (pipe_res);
pipe_res = g_unix_open_pipe (f->client_to_server, FD_CLOEXEC, &f->error);
pipe_res = g_unix_open_pipe (f->client_to_server, O_CLOEXEC, &f->error);
g_assert (pipe_res);
f->server_iostream = my_io_stream_new_for_fds (f->client_to_server[0],

View File

@@ -1750,9 +1750,9 @@ do_test_pass_fd (GSubprocessFlags flags,
char *basic_fd_str;
char *needdup_fd_str;
g_unix_open_pipe (basic_pipefds, FD_CLOEXEC, error);
g_unix_open_pipe (basic_pipefds, O_CLOEXEC, error);
g_assert_no_error (local_error);
g_unix_open_pipe (needdup_pipefds, FD_CLOEXEC, error);
g_unix_open_pipe (needdup_pipefds, O_CLOEXEC, error);
g_assert_no_error (local_error);
basic_fd_str = g_strdup_printf ("%d", basic_pipefds[1]);
@@ -1854,10 +1854,10 @@ do_test_fd_conflation (GSubprocessFlags flags,
return;
}
g_unix_open_pipe (unused_pipefds, FD_CLOEXEC, &error);
g_unix_open_pipe (unused_pipefds, O_CLOEXEC, &error);
g_assert_no_error (error);
g_unix_open_pipe (pipefds, FD_CLOEXEC, &error);
g_unix_open_pipe (pipefds, O_CLOEXEC, &error);
g_assert_no_error (error);
/* The fds should be sequential since we are in a new process. */

View File

@@ -63,7 +63,7 @@ test_fd_list (void)
s = _pipe (sv, 4096, _O_NOINHERIT | _O_BINARY);
g_assert_cmpint (s, ==, 0);
#else
g_unix_open_pipe (sv, FD_CLOEXEC, &err);
g_unix_open_pipe (sv, O_CLOEXEC, &err);
g_assert_no_error (err);
#endif
list = g_unix_fd_list_new_from_array (sv, -1);