mirror of
https://github.com/openharmony/third_party_liburing.git
synced 2026-08-27 21:00:02 -04:00
Handle EINTR in tests
On an otherwise busy machine the test suite is quite flaky. Restart the syscalls that are aborted with EINTR. Signed-off-by: Dirk Müller <dirk@dmllr.de> Link: https://lore.kernel.org/r/20220705132939.7744-1-dirk@dmllr.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
+4
-1
@@ -111,7 +111,10 @@ int main(int argc, char *argv[])
|
||||
(void*) (intptr_t) other_fd);
|
||||
|
||||
/* Wait on the event fd for an event to be ready */
|
||||
ret = read(loop_fd, buf, 8);
|
||||
do {
|
||||
ret = read(loop_fd, buf, 8);
|
||||
} while (ret < 0 && errno == EINTR);
|
||||
|
||||
if (ret < 0) {
|
||||
perror("read");
|
||||
return T_EXIT_FAIL;
|
||||
|
||||
+6
-1
@@ -365,8 +365,13 @@ static int test_cancel_req_across_fork(void)
|
||||
exit(0);
|
||||
} else {
|
||||
int wstatus;
|
||||
pid_t childpid;
|
||||
|
||||
if (waitpid(p, &wstatus, 0) == (pid_t)-1) {
|
||||
do {
|
||||
childpid = waitpid(p, &wstatus, 0);
|
||||
} while (childpid == (pid_t)-1 && errno == EINTR);
|
||||
|
||||
if (childpid == (pid_t)-1) {
|
||||
perror("waitpid()");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user