slice-5: scalability seams — addressing, admission, drain, events (review B1/M1-M7) #14

Merged
alee merged 13 commits from slice-5/scalability-seams into main 2026-07-05 04:35:43 +00:00
3 changed files with 6 additions and 6 deletions
Showing only changes of commit b64a23ae9c - Show all commits

View File

@@ -49,10 +49,10 @@ jobs:
# bind/advertised address split + port range). If a legitimate
# change is needed, update the pinned blob hashes below in the same
# PR — loud and reviewable by design.
- name: Seam gate — loop_driver + rtc_session byte-identical to slice-3
- name: Seam gate — loop_driver frozen (slice-3) + rtc_session pinned (slice-5)
run: |
EXPECTED_LOOP_DRIVER='744bf314edf7f4925c8bb3bd0f5176dbc88f8113'
EXPECTED_RTC_SESSION='76bbcf8c85be0041abda1bcc3390b299fcef3d6f'
EXPECTED_RTC_SESSION='f47d63b9a2883d37066a93c9daa0e2cf8816bec4'
GOT_LOOP_DRIVER=$(git hash-object crates/rutster-media/src/loop_driver.rs)
GOT_RTC_SESSION=$(git hash-object crates/rutster-media/src/rtc_session.rs)
if [ "$GOT_LOOP_DRIVER" != "$EXPECTED_LOOP_DRIVER" ]; then

View File

@@ -130,8 +130,8 @@ pub struct RtcSession {
pub(crate) pipe: Box<dyn AudioPipe + Send>,
/// Local UDP socket str0m sends `Transmit` packets out on and
/// receives `Input::Receive` packets from. Bound to an ephemeral
/// port at construction; the local candidate passed to str0m at
/// offer-accept time uses this address.
/// port at construction. The SDP candidate passed to the peer uses
/// the separate `advertised_addr` field, not this socket's address.
pub(crate) socket: std::net::UdpSocket,
/// Local socket address — cached because `local_addr()` is a syscall.
pub(crate) local_addr: SocketAddr,

View File

@@ -64,8 +64,8 @@ impl Default for MediaThreadOpts {
#[derive(Debug)]
pub enum MediaCmd {
/// Construct a fresh RtcSession, store it under a new ChannelId, reply.
/// The thread constructs RtcSession::new() (keeps all RtcSession
/// construction on the thread that owns it).
/// The thread constructs RtcSession::new_with_config(&opts.media_cfg)
/// (keeps all RtcSession construction on the thread that owns it).
Register {
tap_url: url::Url,
reply: oneshot::Sender<Result<ChannelId, String>>,