an infinite-canvas terminal multiplexer using gpui

tarpd: keep cursor frames in order with the other control frames #11

Closed eti.tf
targeting op/kmwmtpnqoxwu from eti.tf/tarp:eti/cursor-order
Closed opened by and assigned to eti.tf
targeting op/kmwmtpnqoxwu from eti.tf/tarp:eti/cursor-order

recv_control always sent waiting cursors before the control queue, so on a slow link cursor moves at 30 Hz kept responses, events and Closing from ever leaving, until the queue hit CONTROL_CAP and the client was dropped. a cursor could also overtake an earlier client.left or client.joined.

cursors now sit in the control queue as one entry per run: a move merges into the entry at the back, and starts a new entry after any other frame. order is kept and cursors still coalesce.

Commits 1

tarpd: keep cursor frames in order with the other control frames