[8/8] DDraw: Make IDirectDrawImpl thread safe

Stefan Dösinger stefandoesinger at gmail.com
Fri May 11 05:15:50 CDT 2007


Am Freitag 11 Mai 2007 11:29 schrieb Alexandre Julliard:
> Stefan Dösinger <stefan at codeweavers.com> writes:
> > @@ -2731,9 +2792,13 @@ IDirectDrawImpl_EnumSurfaces(IDirectDraw7 *iface,
> >              desc = surf->surface_desc;
> >              IDirectDrawSurface7_AddRef(ICOM_INTERFACE(surf,
> > IDirectDrawSurface7)); if(Callback( ICOM_INTERFACE(surf,
> > IDirectDrawSurface7), &desc, Context) != DDENUMRET_OK) +            {
> > +                DDOBJ_UNLOCK(This);
> >                  return DD_OK;
> > +            }
>
> It don't think you can call an arbitrary callback function with the
> lock held.
Makes sense. I'll write a test to see how windows behaves if another thread 
creates a surface while a thread sleeps in the callback.



More information about the wine-devel mailing list