diff --git a/shm.c b/shm.c index 33095e74..ab717bd0 100644 --- a/shm.c +++ b/shm.c @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -124,7 +125,9 @@ shm_get_buffer(struct wl_shm *shm, int width, int height, unsigned long cookie) size = stride * height; LOG_DBG("cookie=%lx: allocating new buffer: %zu KB", cookie, size / 1024); - int err = posix_fallocate(pool_fd, 0, size); + int err = EINTR; + while (err == EINTR) + err = posix_fallocate(pool_fd, 0, size); if (err != 0) { static bool failure_logged = false;