[PATCH] user32: Make functions use display dc thread-safe

Alexandre Julliard julliard at winehq.org
Fri Jan 12 03:23:20 CST 2018


Nikolay Sivov <bunglehead at gmail.com> writes:

> On 1/12/2018 8:39 AM, 吕果 wrote:
>> Some functions in sysparams.c invoke get_display_dc to get display dc and
>>   then use it without lock mechanism. it will cause condition race in multi-thread.
>> 
>> PS:
>>   I dont't kown how to make a test than can stably run into this problem, but
>>   call GetSystemMetrics(SM_CXSCREEN) within a tight loop in different thread
>>   will get zero finally.
>> 
>
> Hi.
>
> If the issue is get_display_dc() alone, you can use single
> compare-exchange call to set static variable safely.

I expect that the issue is that you can't use the same DC from different
threads at the same time.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list