<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>