MCPcopy Create free account
hub / github.com/axboe/liburing / test_timeout_flags3

Function test_timeout_flags3

test/timeout.c:891–971  ·  view source on GitHub ↗

* Test timeout timeout timeout */

Source from the content-addressed store, hash-verified

889 * Test timeout <drain> timeout <link> timeout
890 */
891static int test_timeout_flags3(struct io_uring *ring)
892{
893 struct io_uring_sqe *sqe;
894 struct io_uring_cqe *cqe;
895 struct __kernel_timespec ts;
896 int ret, i;
897
898 msec_to_ts(&ts, TIMEOUT_MSEC);
899
900 sqe = io_uring_get_sqe(ring);
901 if (!sqe) {
902 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
903 goto err;
904 }
905 io_uring_prep_timeout(sqe, &ts, 0, 0);
906 sqe->user_data = 1;
907 sqe->flags |= IOSQE_IO_DRAIN;
908
909 sqe = io_uring_get_sqe(ring);
910 if (!sqe) {
911 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
912 goto err;
913 }
914 io_uring_prep_timeout(sqe, &ts, 0, 0);
915 sqe->user_data = 2;
916 sqe->flags |= IOSQE_IO_LINK;
917
918 sqe = io_uring_get_sqe(ring);
919 if (!sqe) {
920 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
921 goto err;
922 }
923 io_uring_prep_timeout(sqe, &ts, 0, 0);
924 sqe->user_data = 3;
925
926 ret = io_uring_submit(ring);
927 if (ret <= 0) {
928 fprintf(stderr, "%s: sqe submit failed: %d\n", __FUNCTION__, ret);
929 goto err;
930 }
931
932 for (i = 0; i < 3; i++) {
933 ret = io_uring_wait_cqe(ring, &cqe);
934 if (ret < 0) {
935 fprintf(stderr, "%s: wait completion %d\n", __FUNCTION__, ret);
936 goto err;
937 }
938
939 if (cqe->res == -EINVAL) {
940 if (!i)
941 fprintf(stdout, "%s: timeout flags not supported\n",
942 __FUNCTION__);
943 io_uring_cqe_seen(ring, cqe);
944 continue;
945 }
946
947 switch (cqe->user_data) {
948 case 1:

Callers 1

mainFunction · 0.85

Calls 3

io_uring_submitFunction · 0.85
msec_to_tsFunction · 0.70
io_uring_get_sqeFunction · 0.50

Tested by

no test coverage detected