]> git.sesse.net Git - plocate/blobdiff - io_uring_engine.cpp
Send the result value of the stat to the callback.
[plocate] / io_uring_engine.cpp
index ab9f411c7774ad7905bfbde901459540ee3c4a23..116cf85f285ab15b1a85a6a39f59741271422e06 100644 (file)
@@ -46,7 +46,7 @@ IOUringEngine::IOUringEngine(size_t slop_bytes)
 #endif
 }
 
-void IOUringEngine::submit_stat(const char *path, std::function<void()> cb)
+void IOUringEngine::submit_stat(const char *path, std::function<void(bool)> cb)
 {
        assert(supports_stat);
 
@@ -115,7 +115,7 @@ void IOUringEngine::submit_read_internal(io_uring_sqe *sqe, int fd, size_t len,
        ++pending_reads;
 }
 
-void IOUringEngine::submit_stat_internal(io_uring_sqe *sqe, char *path, std::function<void()> cb)
+void IOUringEngine::submit_stat_internal(io_uring_sqe *sqe, char *path, std::function<void(bool)> cb)
 {
        PendingRead *pending = new PendingRead;
        pending->op = OP_STAT;
@@ -166,7 +166,7 @@ void IOUringEngine::finish()
                                --pending_reads;
 
                                size_t old_pending_reads = pending_reads;
-                               pending->stat_cb();
+                               pending->stat_cb(cqe->res == 0);
                                free(pending->stat.pathname);
                                delete pending->stat.buf;
                                delete pending;