diff --git a/src/event/UringManager.cxx b/src/event/UringManager.cxx
index 4458e7690..1baaf500e 100644
--- a/src/event/UringManager.cxx
+++ b/src/event/UringManager.cxx
@@ -6,6 +6,16 @@
 
 namespace Uring {
 
+Manager::Manager(EventLoop &event_loop,
+		 unsigned entries, unsigned flags)
+	:Queue(entries, flags),
+	 event(event_loop, BIND_THIS_METHOD(OnSocketReady),
+	       GetFileDescriptor()),
+	 idle_event(event_loop, BIND_THIS_METHOD(OnIdle))
+{
+	event.ScheduleRead();
+}
+
 void
 Manager::OnSocketReady(unsigned) noexcept
 {
diff --git a/src/event/UringManager.hxx b/src/event/UringManager.hxx
index 81e885ada..4c4fc20bb 100644
--- a/src/event/UringManager.hxx
+++ b/src/event/UringManager.hxx
@@ -15,14 +15,7 @@ class Manager final : public Queue {
 
 public:
 	explicit Manager(EventLoop &event_loop,
-			 unsigned entries=1024, unsigned flags=0)
-		:Queue(entries, flags),
-		 event(event_loop, BIND_THIS_METHOD(OnSocketReady),
-		       GetFileDescriptor()),
-		 idle_event(event_loop, BIND_THIS_METHOD(OnIdle))
-	{
-		event.ScheduleRead();
-	}
+			 unsigned entries=1024, unsigned flags=0);
 
 	void Submit() override {
 		idle_event.Schedule();