[PATCH 2/2] strmbase: Reset the renderer's state event when flushing.

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon Nov 16 15:07:03 CST 2020


On 11/3/20 6:43 AM, Gabriel Ivăncescu wrote:
> On 02/11/2020 20:11, Zebediah Figura wrote:
>> This patch isn't wrong per se, but it's less pretty than it could be,
>> and exposes some of the still-present problems with renderer locking.
>> Sorry, I'll need more than a little time to review this.
>>
> 
> Understood. Only thing is that I won't be able to send a new version of
> the media detector patches until then, though, because it depends on it.
> (that is why I haven't)
> 

For the sake of transparency, the basic problem is that this patch
treats "filter->sink.flushing" as protected by "csRenderLock", when in
fact it's not. The lock taken in sink_begin_flush() *does* prevent the
race you describe, but it does so in a very non-obvious way. I'm
currently working on restructuring some things so that "flushing" is
protected by a lock which we can safely take from the streaming thread,
but it may take a while (and may not make it in by code freeze).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20201116/14a1c135/attachment.sig>


More information about the wine-devel mailing list