Problem
COM_STMT_CLOSE and COM_QUIT cannot complete cleanly under a completion-driven host. next_event()'s transitions for these — NoResponse -> Completed and Closing -> Closed — only happen on a subsequent call, made after output() has been acknowledged. But neither command produces a server reply, so nothing ever wakes the connection to make that subsequent call: a completion-driven host has no event to trigger it on, and the queue wedges.
Why it matters
Perry's P7 lane calls this the "Highest-value fix" among everything turnloop-mysql needs. It worked around the wedge with a 0 ms turnloop deadline purely to force a call into the connection after output() is acknowledged — an artificial wakeup for a command that will never get a real one.
What would fix it
Either:
- A
consume_output return value that itself signals "you should call next_event() again right away," or
- A
poll_pending() -> bool that says "call me again" after output has been consumed for a command with no server reply.
Either would let a host complete these two commands without inventing a timer purely to manufacture a wakeup.
Problem
COM_STMT_CLOSEandCOM_QUITcannot complete cleanly under a completion-driven host.next_event()'s transitions for these —NoResponse -> CompletedandClosing -> Closed— only happen on a subsequent call, made afteroutput()has been acknowledged. But neither command produces a server reply, so nothing ever wakes the connection to make that subsequent call: a completion-driven host has no event to trigger it on, and the queue wedges.Why it matters
Perry's P7 lane calls this the "Highest-value fix" among everything
turnloop-mysqlneeds. It worked around the wedge with a 0 ms turnloop deadline purely to force a call into the connection afteroutput()is acknowledged — an artificial wakeup for a command that will never get a real one.What would fix it
Either:
consume_outputreturn value that itself signals "you should callnext_event()again right away," orpoll_pending() -> boolthat says "call me again" after output has been consumed for a command with no server reply.Either would let a host complete these two commands without inventing a timer purely to manufacture a wakeup.