X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=io_uring_engine.cpp;h=ab9f411c7774ad7905bfbde901459540ee3c4a23;hb=acce03bb32917e21f2d1d49c5a460d3cd2f72a11;hp=70497a44cb122acf501d52c7062db124e6551e9d;hpb=2983b424187a853bcde96a8feff6ef0ae48db7d5;p=plocate diff --git a/io_uring_engine.cpp b/io_uring_engine.cpp index 70497a4..ab9f411 100644 --- a/io_uring_engine.cpp +++ b/io_uring_engine.cpp @@ -7,6 +7,7 @@ #ifndef WITHOUT_URING #include #endif +#include "complete_pread.h" #include "dprintf.h" #include "io_uring_engine.h" @@ -247,20 +248,3 @@ void IOUringEngine::finish() } #endif } - -void complete_pread(int fd, void *ptr, size_t len, off_t offset) -{ - while (len > 0) { - ssize_t ret = pread(fd, ptr, len, offset); - if (ret == -1 && errno == EINTR) { - continue; - } - if (ret <= 0) { - perror("pread"); - exit(1); - } - ptr = reinterpret_cast(ptr) + ret; - len -= ret; - offset -= ret; - } -}