slice-5: scalability seams — addressing, admission, drain, events (review B1/M1-M7) #14
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>>,
|
||||
|
||||
Reference in New Issue
Block a user