playlist/fetcher: fix vlc_interrupt assert
authorThomas Guillem <thomas@gllm.fr>
Wed, 6 Apr 2016 16:59:22 +0000 (18:59 +0200)
committerThomas Guillem <thomas@gllm.fr>
Wed, 6 Apr 2016 17:06:08 +0000 (19:06 +0200)
The fetcher thread is not attached, and is not joined (and can't be joined).
When playlist_fetcher_Delete() wait for the thread to finish (b_live == false),
we can't be sure that the thread really exited, and that the thread interrupt
TSD is destroyed. To fix this issue, unset the interrupt context manually from
the Thread just before it's terminated.

This problem was brought by 7f8d972a2b0ff62ef02a9d562a9a8299dd2eb985 and was
breaking some tests (non systematic).

src/playlist/fetcher.c

index 9baf3b7..ff1e94b 100644 (file)
@@ -477,6 +477,7 @@ static void *Thread( void *p_data )
         }
         else
         {
+            vlc_interrupt_set( NULL );
             p_fetcher->b_live = false;
             vlc_cond_signal( &p_fetcher->wait );
         }