π€ AI: A joining client stays inaudible until the server has its channel info: the fade-in advances only once bIsIdentified is set (#1589), and OnNewConnection requests it seventh in a stop-and-wait queue, one RTT per message.
With CreateVersionAndOSMes() and CreateReqChanInfoMes() moved right after CreateClientIDMes(), a 4.0.0beta3 joiner is heard sooner (netem loopback, tone recorded at a second client, 5 joins each):
| RTT |
current |
reordered |
| 20 ms |
197 ms |
119 ms |
| 100 ms |
805 ms |
395 ms |
| 200 ms |
1546 ms |
749 ms |
Moving only the channel-info request lands the sequence-counter switch inside the fade: a ~270 ms dropout on 8 of 8 joins. Moving both: 0β15 ms (current: 0β69 ms). Every client release 3.7.0β4.0.0beta3 joined (23 of 23).
It also shortens #3107's unidentified window: channel info arrives 302 ms after the first audio packet instead of 710 ms (100 ms RTT).
Does anything depend on the current order?
π€ This message was written by AI and reviewed by @mcfnord.
π€ AI: A joining client stays inaudible until the server has its channel info: the fade-in advances only once
bIsIdentifiedis set (#1589), andOnNewConnectionrequests it seventh in a stop-and-wait queue, one RTT per message.With
CreateVersionAndOSMes()andCreateReqChanInfoMes()moved right afterCreateClientIDMes(), a 4.0.0beta3 joiner is heard sooner (netem loopback, tone recorded at a second client, 5 joins each):Moving only the channel-info request lands the sequence-counter switch inside the fade: a ~270 ms dropout on 8 of 8 joins. Moving both: 0β15 ms (current: 0β69 ms). Every client release 3.7.0β4.0.0beta3 joined (23 of 23).
It also shortens #3107's unidentified window: channel info arrives 302 ms after the first audio packet instead of 710 ms (100 ms RTT).
Does anything depend on the current order?
π€ This message was written by AI and reviewed by @mcfnord.