[vlc-devel] [PATCH] Avoid deadlock on UDP stop

Romain Vimont rom at rom1v.com
Sun May 11 16:42:05 CEST 2014


The purpose is similar.

However, p_access->info.b_eof is not, as far as I know, "synchronized"
(not atomic, no mutex), while we need to set it in ThreadRead() and read
it from BlockUDP() (two different threads).

So b_finishing is used for sharing the state between ThreadRead() and
BlockUDP(). Once BlockUDP() reads b_finishing as true, then it sets
b_eof, which is read just after in the same thread
(stream.c/AReadBlock()).

If there is a way to safely reuse b_eof, then we could use it, and
remove b_finishing.

--
®om

Le dimanche 11 mai 2014 à 22:05 +0800, Rémi Denis-Courmont a écrit :
> Le 2014-05-11 19:36, Romain Vimont a écrit :
> >A new flag keeping the "finishing" state of the UDP access is sufficient
> >to prevent the deadlock, avoiding unwanted calls to block_FifoGet().
> 
> Isn't that duplicating the b_eof flag?
> 
> -- 
> Rémi Denis-Courmont
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list