@b4n commented on this pull request.


In src/spawn.c:

> @@ -967,6 +1002,25 @@ static gboolean spawn_read_cb(GIOChannel *channel, GIOCondition condition, gpoin
 
 		sc->cb.read(buffer, input_cond | failure_cond, sc->cb_data);
 	}
+	/* Check for continuous activations with G_IO_IN | G_IO_PRI, without any
+	   data to read and without errors. If detected, switch to timeout source. */
+	else if (SPAWN_CHANNEL_GIO_WATCH(sc) && status == G_IO_STATUS_AGAIN)
+	{
+		sc->empty_gio_ins++;

@zhekov OK. My reasoning was that if you don't switch right away, it suggests empty INs could happen in situations where switching to a timeout source is not a good idea or the thing to do; so that maybe they could happen rarely and not be a real problem hence not being worth switching.

But if you tell me the reason to wait for 200 empty INs before switching is e.g. not to bother switching for short-lived output, I get that and then it wouldn't we worth worrying about decrementing the value.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.