commit
230b85f414291ac955827aba15cfbd103ab6ebdd
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Thu Jun 9 01:15:10 2016 +0200
Fix pipe() call returning EINTR sometimes
because it uses a critical section
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-eintr.diff
return MACH_PORT_NULL;
}
+retry:
HURD_CRITICAL_BEGIN;
__mutex_lock (&lock);
__mutex_unlock (&lock);
HURD_CRITICAL_END;
+ if (!server && errno == EINTR)
+ /* Got a signal while inside an RPC of the critical section, retry again */
+ goto retry;
+
return server;
}
\f