diff --git a/gio/xdgmime/xdgmimecache.c b/gio/xdgmime/xdgmimecache.c index 0324e1429..87a3cd00b 100644 --- a/gio/xdgmime/xdgmimecache.c +++ b/gio/xdgmime/xdgmimecache.c @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -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;