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

Function test_timeout_link_chain2

test/link-timeout.c:765–859  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

763}
764
765static int test_timeout_link_chain2(struct io_uring *ring)
766{
767 struct __kernel_timespec ts;
768 struct io_uring_cqe *cqe;
769 struct io_uring_sqe *sqe;
770 int fds[2], ret, i;
771
772 if (pipe(fds)) {
773 perror("pipe");
774 return 1;
775 }
776
777 sqe = io_uring_get_sqe(ring);
778 if (!sqe) {
779 printf("get sqe failed\n");
780 goto err;
781 }
782 io_uring_prep_poll_add(sqe, fds[0], POLLIN);
783 sqe->flags |= IOSQE_IO_LINK;
784 sqe->user_data = 1;
785
786 sqe = io_uring_get_sqe(ring);
787 if (!sqe) {
788 printf("get sqe failed\n");
789 goto err;
790 }
791 ts.tv_sec = 0;
792 ts.tv_nsec = 1000000;
793 io_uring_prep_link_timeout(sqe, &ts, 0);
794 sqe->flags |= IOSQE_IO_LINK;
795 sqe->user_data = 2;
796
797 sqe = io_uring_get_sqe(ring);
798 if (!sqe) {
799 printf("get sqe failed\n");
800 goto err;
801 }
802 io_uring_prep_nop(sqe);
803 sqe->flags |= IOSQE_IO_LINK;
804 sqe->user_data = 3;
805
806 sqe = io_uring_get_sqe(ring);
807 if (!sqe) {
808 printf("get sqe failed\n");
809 goto err;
810 }
811 io_uring_prep_nop(sqe);
812 sqe->user_data = 4;
813
814 ret = io_uring_submit(ring);
815 if (ret != 4) {
816 printf("sqe submit failed: %d\n", ret);
817 goto err;
818 }
819
820 for (i = 0; i < 4; i++) {
821 ret = io_uring_wait_cqe(ring, &cqe);
822 if (ret < 0) {

Callers 1

mainFunction · 0.85

Calls 2

io_uring_submitFunction · 0.85
io_uring_get_sqeFunction · 0.50

Tested by

no test coverage detected