Browse Source

MT#55283 fix deadlock retry logic

Change-Id: I6f4162f724e527828f4f14e26746dff7d43562f5
(cherry picked from commit fede2a051e)
mr13.5
Richard Fuchs 2 days ago
parent
commit
ae509ad14e
1 changed files with 4 additions and 3 deletions
  1. +4
    -3
      daemon/media_socket.c

+ 4
- 3
daemon/media_socket.c View File

@ -1904,14 +1904,14 @@ static void kernelize(struct packet_stream *stream) {
continue;
bool ok = kernelize_one_sink_handler(&s, stream, sh);
if (!ok)
continue; // retry
goto retry;
}
// RTP egress mirrors
for (__auto_type l = stream->rtp_mirrors.head; l; l = l->next) {
struct sink_handler *sh = l->data;
bool ok = kernelize_one_sink_handler(&s, stream, sh);
if (!ok)
continue; // retry
goto retry;
}
// RTP -> RTCP sinks
// record number of RTP destinations up to now
@ -1922,7 +1922,7 @@ static void kernelize(struct packet_stream *stream) {
struct sink_handler *sh = l->data;
bool ok = kernelize_one_sink_handler(&s, stream, sh);
if (!ok)
continue; // retry
goto retry;
}
// mark the start of RTCP outputs
s.reti.num_rtcp_destinations = s.reti.num_destinations - num_rtp_dests;
@ -1954,6 +1954,7 @@ no_kernel:
PS_SET(stream, NO_KERNEL_SUPPORT);
return;
retry:;
}
}


Loading…
Cancel
Save