mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 07:23:41 +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:
@@ -63,6 +63,7 @@
|
||||
#include <gvfs.h>
|
||||
|
||||
#ifndef G_OS_WIN32
|
||||
#include "glib-unix.h"
|
||||
#include "glib-private.h"
|
||||
#endif
|
||||
#include "glibintl.h"
|
||||
@@ -1260,7 +1261,7 @@ get_content_type (const char *basename,
|
||||
ssize_t res;
|
||||
|
||||
res = read (fd, sniff_buffer, sniff_length);
|
||||
close (fd);
|
||||
(void) g_close (fd, NULL);
|
||||
if (res >= 0)
|
||||
{
|
||||
g_free (content_type);
|
||||
|
Reference in New Issue
Block a user