[Bug 31566] Fallout 3: regression causes block at critical section when radio is enabled

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jul 17 14:48:16 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=31566

--- Comment #7 from Erich Hoover <erich.e.hoover at gmail.com> ---
(In reply to Erich Hoover from comment #6)
> Created attachment 49035 [details]
> Flip the order of a very critical set of locks
> ...

Just a little more detail about the call order, for those that are interested
(why this change is necessary):
== Thread 1==
BaseRendererImpl_Receive
 -> EnterCriticalSection(csRenderLock);
 -> ...
 -> QualityControlRender_BeginRender
     -> ReferenceClock_GetTime
         -> EnterCriticalSection(filter.csFilter);
         -> ...
         -> LeaveCriticalSection(filter.csFilter);
 -> ...
 -> LeaveCriticalSection(csRenderLock);
== Thread 2==
BaseRenderer_InputPin_BeginFlush
 -> EnterCriticalSection(filter.csFilter);
 -> EnterCriticalSection(csRenderLock);
 -> ...
 -> LeaveCriticalSection(filter.csFilter);
 -> LeaveCriticalSection(csRenderLock);

There are a few other places that do similar things, so I went ahead and put
together patches for all the obvious ones:
https://github.com/compholio/wine-compholio/tree/master/patches/17-strmbase-Lock_Race_Conditions

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list