[PATCH 2/2] server: Fill the TimeZoneBias member of KSHARED_USER_DATA.

Alexandre Julliard julliard at winehq.org
Tue Aug 24 15:50:12 CDT 2021


"Zebediah Figura (she/her)" <zfigura at codeweavers.com> writes:

> On 8/24/21 1:03 PM, Alexandre Julliard wrote:
>> Zebediah Figura <zfigura at codeweavers.com> writes:
>> 
>>> @@ -410,6 +410,16 @@ static void atomic_store_long(volatile LONG *ptr, LONG value)
>>>   static void set_user_shared_data_time(void)
>>>   {
>>>       timeout_t tick_count = monotonic_time / 10000;
>>> +    timeout_t timezone_bias;
>>> +    struct tm *tm;
>>> +    time_t now;
>>> +
>>> +    now = time( NULL );
>>> +    tm = gmtime( &now );
>>> +    timezone_bias = mktime( tm ) - now;
>>> +    tm = localtime( &now );
>>> +    if (tm->tm_isdst) timezone_bias -= 3600;
>>> +    timezone_bias *= TICKS_PER_SEC;
>> Do we really want to do that on every request?
>> 
>
> Presumably it can change whenever the user changes the time zone (or,
> more realistically, if DST happens to flip over). I'm not aware of a 
> better way to detect that, and I didn't think we'd want to ignore
> changes. I guess we could always cache it for some fixed length of
> time, though it's not clear to me that's not a bad idea either.

At least it doesn't seem useful to update this more than once per
second.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list