<html><head></head><body>Hi,<br><br>Before it would wait to be cancelled when there are no sessions. Now it exits on its own.<br><br><div class="gmail_quote">Le 10 février 2020 08:54:21 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">On 2020-02-09 14:33, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><hr> src/stream_output/sap.c | 22 ++++++++--------------<br> 1 file changed, 8 insertions(+), 14 deletions(-)<br><br>diff --git a/src/stream_output/sap.c b/src/stream_output/sap.c<br>index eb85ab7297..481f3e5f20 100644<br>--- a/src/stream_output/sap.c<br>+++ b/src/stream_output/sap.c<br>@@ -27,7 +27,6 @@<br> <br> #include <vlc_common.h><br> <br>-#include <stdnoreturn.h><br> #include <stdlib.h> /* free() */<br> #include <stdio.h> /* sprintf() */<br> #include <string.h><br>@@ -81,7 +80,7 @@ static vlc_mutex_t sap_mutex = VLC_STATIC_MUTEX;<br> #define MIN_INTERVAL 2<br> #define MAX_INTERVAL 300<br> <br>-noreturn static void *RunThread (void *);<br>+static void *RunThread (void *);<br> <br> static sap_address_t *AddressCreate (vlc_object_t *obj, const char *group)<br> {<br>@@ -120,14 +119,13 @@ static void AddressDestroy (sap_address_t *addr)<br> * \param p_this the SAP Handler object<br> * \return nothing<br> */<br>-noreturn static void *RunThread (void *self)<br>+static void *RunThread (void *self)<br> {<br> sap_address_t *addr = self;<br> <br> vlc_mutex_lock(&sap_mutex);<br>- mutex_cleanup_push(&sap_mutex);<br> <br>- for (;;)<br>+ while (!vlc_list_is_empty(&addr->sessions))<br></blockquote><br>So when the number of sessions goes down to zero, it exits. Before it <br>would wait, in case a new session would come. Is this intended ?<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> {<br> session_descriptor_t *p_session;<br> vlc_tick_t deadline = vlc_tick_now();<br>@@ -144,8 +142,8 @@ noreturn static void *RunThread (void *self)<br> }<br> }<br> <br>- vlc_cleanup_pop ();<br>- vlc_assert_unreachable ();<br>+ vlc_mutex_unlock(&sap_mutex);<br>+ return NULL;<br> }<br> <br> #undef sout_AnnounceRegisterSDP<br>@@ -372,17 +370,13 @@ void sout_AnnounceUnRegister (vlc_object_t *obj, session_descriptor_t *session)<br> if (vlc_list_is_empty(&addr->sessions))<br> /* Last session for this address -> unlink the address */<br> vlc_list_remove(&addr->node);<br>- else<br>- {<br>- addr->session_count--;<br>- vlc_cond_signal (&addr->wait);<br>- }<br> <br>- vlc_mutex_unlock (&sap_mutex);<br>+ addr->session_count--;<br>+ vlc_cond_signal(&addr->wait);<br>+ vlc_mutex_unlock(&sap_mutex);<br> <br> if (vlc_list_is_empty(&addr->sessions))<br> {<br>- vlc_cancel(addr->thread);<br> vlc_join(addr->thread, NULL);<br> AddressDestroy(addr);<br> }<br>-- <br>2.25.0<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br><br></blockquote><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>