diff --git a/glib/gstdio.c b/glib/gstdio.c index 6d763e1f6..71431f1fe 100644 --- a/glib/gstdio.c +++ b/glib/gstdio.c @@ -40,6 +40,7 @@ #include #else #include +#include #endif #include "gstdio.h" @@ -209,7 +210,11 @@ g_open (const gchar *filename, errno = save_errno; return retval; #else - return open (filename, flags, mode); + int fd; + do + fd = open (filename, flags, mode); + while (G_UNLIKELY (fd == -1 && errno == EINTR)); + return fd; #endif }