make SessionGroup::await_stale_sessions Send
This commit is contained in:
parent
bcc885474b
commit
9a519c8e25
@ -184,14 +184,15 @@ impl SessionGroup {
|
||||
pub async fn await_stale_sessions(&self, status: &StaleSessionStatus) {
|
||||
loop {
|
||||
let notified = self.notify.notified();
|
||||
let l = self.sessions.lock().unwrap();
|
||||
let all_gone = l
|
||||
.sessions
|
||||
.iter()
|
||||
.all(|s| !s.maybe_playing || s.seqnum >= status.next_seqnum);
|
||||
drop(l);
|
||||
if all_gone {
|
||||
return;
|
||||
{
|
||||
let l = self.sessions.lock().unwrap();
|
||||
let all_gone = l
|
||||
.sessions
|
||||
.iter()
|
||||
.all(|s| !s.maybe_playing || s.seqnum >= status.next_seqnum);
|
||||
if all_gone {
|
||||
return;
|
||||
}
|
||||
}
|
||||
notified.await;
|
||||
}
|
||||
@ -2158,4 +2159,13 @@ mod tests {
|
||||
assert!(!has_live555_tcp_bug("LIVE555 Streaming Media v2017.06.04"));
|
||||
assert!(!has_live555_tcp_bug("LIVE555 Streaming Media v2020.01.01"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn await_stale_sessions_is_send() {
|
||||
// There's probably a more elegant way to test this, but here goes.
|
||||
fn assert_send<T: Send>(_: T) {}
|
||||
let group = SessionGroup::default();
|
||||
let stale_sessions = group.stale_sessions();
|
||||
assert_send(group.await_stale_sessions(&stale_sessions));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user