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

Function test_timeout_flags2

test/timeout.c:806–886  ·  view source on GitHub ↗

* Test timeout timeout timeout */

Source from the content-addressed store, hash-verified

804 * Test timeout <link> timeout <link> timeout
805 */
806static int test_timeout_flags2(struct io_uring *ring)
807{
808 struct io_uring_sqe *sqe;
809 struct io_uring_cqe *cqe;
810 struct __kernel_timespec ts;
811 int ret, i;
812
813 msec_to_ts(&ts, TIMEOUT_MSEC);
814
815 sqe = io_uring_get_sqe(ring);
816 if (!sqe) {
817 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
818 goto err;
819 }
820 io_uring_prep_timeout(sqe, &ts, 0, 0);
821 sqe->user_data = 1;
822 sqe->flags |= IOSQE_IO_LINK;
823
824 sqe = io_uring_get_sqe(ring);
825 if (!sqe) {
826 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
827 goto err;
828 }
829 io_uring_prep_timeout(sqe, &ts, 0, 0);
830 sqe->user_data = 2;
831 sqe->flags |= IOSQE_IO_LINK;
832
833 sqe = io_uring_get_sqe(ring);
834 if (!sqe) {
835 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
836 goto err;
837 }
838 io_uring_prep_timeout(sqe, &ts, 0, 0);
839 sqe->user_data = 3;
840
841 ret = io_uring_submit(ring);
842 if (ret <= 0) {
843 fprintf(stderr, "%s: sqe submit failed: %d\n", __FUNCTION__, ret);
844 goto err;
845 }
846
847 for (i = 0; i < 3; i++) {
848 ret = io_uring_wait_cqe(ring, &cqe);
849 if (ret < 0) {
850 fprintf(stderr, "%s: wait completion %d\n", __FUNCTION__, ret);
851 goto err;
852 }
853
854 if (cqe->res == -EINVAL) {
855 if (!i)
856 fprintf(stdout, "%s: timeout flags not supported\n",
857 __FUNCTION__);
858 io_uring_cqe_seen(ring, cqe);
859 continue;
860 }
861
862 switch (cqe->user_data) {
863 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