Sha256: bc7cf7b9a4f97798fd6dbc0f4a3f5c740086f1b8edeac9a46bbfdb0fa1d52f1e
Contents?: true
Size: 1.63 KB
Versions: 3
Compression:
Stored size: 1.63 KB
Contents
/* SPDX-License-Identifier: MIT */ /* * Description: Test that out-of-order file updates with inflight requests * work as expected. * */ #include <stdio.h> #include <fcntl.h> #include <sys/socket.h> #include <unistd.h> #include <stdlib.h> #include <poll.h> #include "liburing.h" #include "helpers.h" int main(int argc, char *argv[]) { struct io_uring_sqe *sqe; int res, fds[2], sockid; struct io_uring ring; if (argc > 1) return T_EXIT_SKIP; res = io_uring_queue_init(1, &ring, 0); if (res) { fprintf(stderr, "queue_init: %d\n", res); return T_EXIT_FAIL; } res = io_uring_register_files_sparse(&ring, 2); if (res) { if (res == -EINVAL) return T_EXIT_SKIP; fprintf(stderr, "sparse reg: %d\n", res); return T_EXIT_FAIL; } fds[0] = socket(AF_INET, SOCK_DGRAM, 0); if (fds[0] < 0) { perror("socket"); return T_EXIT_FAIL; } fds[1] = socket(AF_INET, SOCK_DGRAM, 0); if (fds[1] < 0) { perror("socket"); return T_EXIT_FAIL; } res = io_uring_register_files_update(&ring, 0, fds, 2); if (res != 2) { fprintf(stderr, "files updates; %d\n", res); return T_EXIT_FAIL; } sqe = io_uring_get_sqe(&ring); io_uring_prep_poll_add(sqe, 0, POLLIN); sqe->flags = IOSQE_FIXED_FILE; io_uring_submit(&ring); close(fds[0]); close(fds[1]); sockid = -1; res = io_uring_register_files_update(&ring, 1, &sockid, 1); if (res != 1) { fprintf(stderr, "files updates; %d\n", res); return T_EXIT_FAIL; } sockid = -1; res = io_uring_register_files_update(&ring, 0, &sockid, 1); if (res != 1) { fprintf(stderr, "files updates; %d\n", res); return T_EXIT_FAIL; } sleep(1); io_uring_queue_exit(&ring); return T_EXIT_PASS; }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
uringmachine-0.5.1 | vendor/liburing/test/ooo-file-unreg.c |
uringmachine-0.5 | vendor/liburing/test/ooo-file-unreg.c |
uringmachine-0.4 | vendor/liburing/test/ooo-file-unreg.c |