From 171ae9d4b1ac33d54dd22ad96828d02c508e609e Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fischer@muhq.space>
Date: Fri, 11 Mar 2022 18:17:17 +0100
Subject: [PATCH] depend on liburing 2.2

Liburing 2.2 and Linux 5.18 support IORING_REGISTER_RING_FDS, preventing
the fget(ring_fd) overhead for each io_uring_enter call, as well as
IORING_OP_MSG_RING, greatly simplifying the IO-based sleep strategy code.
---
 emper/io/Future.cpp       |  2 +-
 meson.build               |  2 +-
 subprojects/liburing.wrap | 12 +++---------
 3 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/emper/io/Future.cpp b/emper/io/Future.cpp
index 329386c9..39b5f479 100644
--- a/emper/io/Future.cpp
+++ b/emper/io/Future.cpp
@@ -180,7 +180,7 @@ void CancelWrapper::prepareSqeInternal(struct io_uring_sqe* sqe) {
 	if constexpr (!emper::IO_SINGLE_URING) {
 		assert(future.submitter == IoContext::workerIo);
 	}
-	void* user_data = IoContext::createFutureTag(future);
+	uint64_t user_data = IoContext::createFutureTag(future);
 	io_uring_prep_cancel(sqe, user_data, 0);
 }
 }	 // namespace emper::io
diff --git a/meson.build b/meson.build
index d0893307..bbc0184e 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,7 @@ thread_dep = dependency('threads')
 conf_data = configuration_data()
 use_bundled_deps = get_option('use_bundled_deps')
 
-liburing_version = '2.1'
+liburing_version = '2.2'
 uring_dep = dependency('liburing', version: liburing_version, required: use_bundled_deps == 'never')
 if not uring_dep.found() or use_bundled_deps == 'always'
 	message('liburing ' + liburing_version + ' not found in system, using liburing subproject')
diff --git a/subprojects/liburing.wrap b/subprojects/liburing.wrap
index b3c66d52..0245dd82 100644
--- a/subprojects/liburing.wrap
+++ b/subprojects/liburing.wrap
@@ -1,12 +1,6 @@
-[wrap-file]
-directory = liburing-liburing-2.1
-source_url = https://github.com/axboe/liburing/archive/refs/tags/liburing-2.1.tar.gz
-source_filename = liburing-2.1.tar.gz
-source_hash = f1e0500cb3934b0b61c5020c3999a973c9c93b618faff1eba75aadc95bb03e07
-patch_filename = liburing_2.1-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/liburing_2.1-1/get_patch
-patch_hash = aaeb2be1f5eacf4f41e0537aa02154486e0729a3395d2e832de7657ab0b56290
+[wrap-git]
+url=https://github.com/fischerling/liburing.git
+revision=7cef94c598c9137b8d98e2d361f0e6ed1e869919
 
 [provide]
 uring = uring
-
-- 
GitLab