[glib] xdgmime: Handle EINTR in open()



commit 2542b6f60492fadfb21f2c4a29976c3494c7e6c5
Author: Colin Walters <walters verbum org>
Date:   Mon Aug 27 18:22:26 2012 -0400

    xdgmime: Handle EINTR in open()
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682833

 gio/xdgmime/xdgmimecache.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/gio/xdgmime/xdgmimecache.c b/gio/xdgmime/xdgmimecache.c
index 0324e14..87a3cd0 100644
--- a/gio/xdgmime/xdgmimecache.c
+++ b/gio/xdgmime/xdgmimecache.c
@@ -34,6 +34,7 @@
 
 #include <fcntl.h>
 #include <unistd.h>
+#include <errno.h>
 #include <fnmatch.h>
 #include <assert.h>
 
@@ -120,7 +121,9 @@ _xdg_mime_cache_new_from_file (const char *file_name)
   int minor;
 
   /* Open the file and map it into memory */
-  fd = open (file_name, O_RDONLY|_O_BINARY, 0);
+  do
+    fd = open (file_name, O_RDONLY|_O_BINARY, 0);
+  while (fd == -1 && errno == EINTR);
 
   if (fd < 0)
     return NULL;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]