Hi, On Tue, Dec 6, 2011 at 8:33 PM, Ronald S. Bultje <[email protected]> wrote:
> On Tue, Dec 6, 2011 at 8:02 PM, Ronald S. Bultje <[email protected]>wrote: > >> On Tue, Dec 6, 2011 at 6:28 PM, Uoti Urpala <[email protected]>wrote: >> >>> On Tue, 2011-12-06 at 18:20 -0800, Ronald S. Bultje wrote: >>> > Hi, >>> > >>> > On Dec 6, 2011 6:06 PM, "Uoti Urpala" <[email protected]> wrote: >>> > > The pthread_cond_broadcast() implementation in w32pthreads.h looks >>> > > suspicious - it could wake up the same thread multiple times (if it >>> > > re-enters wait fast enough) instead of waking up all current >>> > waiters. >>> > > Maybe that is the actual problem? >>> > >>> > If that's the case grabbing and directly releasing a static lock in >>> > pthread_mutex_lock, and holding this in pthread_cond_broadcast, should >>> > fix it. >>> >>> The commit adding the current libavcodec/w32pthreads.h said "Replace our >>> incomplete w32threads implementation with x264's pthreads w32threads >>> wrapper.". However, the code does not match x264's common/win32thread.c, >>> and the x264 version looks like it does try to handle this correctly. >> >> >> Yeah that's the same as what I just said. Looks like we should implement >> that. >> > > Attached patch ports x264's layer. 100% untested. > This one is tested, works. I'm not claiming copyright over it, just being the messenger. Ronald
0001-w32thread-port-fixes-to-pthread_cond_broadcast-from-.patch
Description: Binary data
_______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
