mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-09-27 17:52:58 +02:00
Add g_close(), use it
There are two benefits to this: 1) We can centralize any operating system specific knowledge of close-vs-EINTR handling. For example, while on Linux we should never retry, if someone cared enough later about HP-UX, they could come by and change this one spot. 2) For places that do care about the return value and want to provide the caller with a GError, this function makes it convenient to do so. Note that gspawn.c had an incorrect EINTR loop-retry around close(). https://bugzilla.gnome.org/show_bug.cgi?id=682819
This commit is contained in:
@@ -39,6 +39,7 @@
|
||||
#include "ginputstream.h"
|
||||
#include "gmemoryinputstream.h"
|
||||
#include "giostream.h"
|
||||
#include "glib/gstdio.h"
|
||||
#include "gsocketcontrolmessage.h"
|
||||
#include "gsocketconnection.h"
|
||||
#include "gsocketoutputstream.h"
|
||||
@@ -621,7 +622,7 @@ _g_dbus_worker_do_read_cb (GInputStream *input_stream,
|
||||
{
|
||||
/* TODO: really want a append_steal() */
|
||||
g_unix_fd_list_append (worker->read_fd_list, fds[n], NULL);
|
||||
close (fds[n]);
|
||||
(void) g_close (fds[n], NULL);
|
||||
}
|
||||
}
|
||||
g_free (fds);
|
||||
|
Reference in New Issue
Block a user