From 9a26914c9fc1c282e76bb238ef840bcdab772939 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Wed, 13 Mar 2024 00:22:07 -0400 Subject: [PATCH] missing subscription in ev loop (for the magic pipe) --- src/io/ev_loop.ml | 27 +++++++++++++++++---------- src/io/moonpool_io.ml | 1 - 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/io/ev_loop.ml b/src/io/ev_loop.ml index 5cfc3145..29659f24 100644 --- a/src/io/ev_loop.ml +++ b/src/io/ev_loop.ml @@ -156,16 +156,23 @@ module Main_loop = struct Unix.set_nonblock _magic_pipe_read; Unix.set_nonblock _magic_pipe_write; let poll = Poll.create () in - { - timer = Timer.create (); - io_tbl = IO_tbl.create (); - incoming = B_queue.create (); - in_poll = A.make false; - poll; - buf4 = Bytes.create 4; - _magic_pipe_read; - _magic_pipe_write; - } + let self = + { + timer = Timer.create (); + io_tbl = IO_tbl.create (); + incoming = B_queue.create (); + in_poll = A.make false; + poll; + buf4 = Bytes.create 4; + _magic_pipe_read; + _magic_pipe_write; + } + in + (* make sure we subscribe to readiness of the notification pipe *) + IO_tbl.add_io_wait self.io_tbl self.poll self._magic_pipe_read Read + (Handle.fresh H_read) (IO_wait.make ignore); + + self let push (self : state) (msg : Incoming_msg.t) = B_queue.push self.incoming msg; diff --git a/src/io/moonpool_io.ml b/src/io/moonpool_io.ml index ed565218..6ed96890 100644 --- a/src/io/moonpool_io.ml +++ b/src/io/moonpool_io.ml @@ -1,4 +1,3 @@ -open Common_ module Fd = Fd module Timer = Timer module Ev_loop = Ev_loop