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

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

Reply via email to