Alexandre Julliard wrote:
Andriy Palamarchuk apa3a@yahoo.com writes:
Do you think it is better to do lazy loading for
most
parameters?
Yes definitely.
Ok, how about this: Each system parameter has "is_loaded" flag which shows whether the parameter is loaded or not. Parameters, stored directly in SysParametersInfo are loaded from registry only when they are requested and the flag is "false", after the loading the flag is set to "true". On interprocess notification of the parameter change the corresponding parameter flag is set to "false". The parameter will be reloaded when it is requested the next time.
Parameters, backed by GetSystemMetrics are processed differently. These parameters are always loaded. They are reloaded right away on interprocess change notification. We can't do lazy loading because GetSystemMetrics returns its values from system metrics array and we don't want to complicate this function.
I'm going to implement the flags as a bit array. Index constants for this array will be defined separately.
I'll think about it more. Originally I planned to broadcast change notification across processes and
use
the reload function in other process to refresh
values
from registry. The problem with this approach is
when
a parameter is changed without saving.
A possibility could to create a volatile registry
branch to save
parameters that aren't permanently saved. This way
they would be
accessible from other processes.
Thank you for the idea.
Are there any existing implementations of communication between Wine processes I can use as an example?
Disregard the patches "SystemParametersInfo / GetSystemMetrics", "SPI_GET/SETBORDER". I'll implement the discussed above changes and resubmit them.
Do you still think it is better don't affect X settings from Wine? Please let me know.
While we are on this - what about other my patch - "hello5.c"? It fixes a warning and an error message I got when I tried to compile hello5.c.
Andriy Palamarchuk
__________________________________________________ Do You Yahoo!? Make a great connection at Yahoo! Personals. http://personals.yahoo.com