mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-14 19:17:35 +01:00
9ec44832dd
A nasty bug was sometime occurring where both explorer and the widget host process could hang; this often happened when explorer was restarted. The reason this happened was because the widget host process could hang waiting for the "Lock_EPWeather_Instance" lock. This was a global lock that made sure only one instance of the widget could be created. The idea of the global "Lock_EPWeather_Instance" lock was, of course, pretty bad, but I chose it because I couldn't figure out/didn't want to deal with passing an EPWeather "this" instance to WebView2 or NetworkListManagerEvents functions. Bad decision. This patch addresses this bug, by providing a generic object which holds a reference to EPWeather "this" on which I build event handlers for WebView2 and so on. Since these now contain this reference, they cannot be static anymore, thus I switched to dynamically allocating them and managing them throughout their lifetime using, of course, reference counting. This is the proper solution. Thus, this bug and any similar ones should now be fixed. |
||
---|---|---|
.. | ||
ep_weather_error_html.h | ||
ep_weather_factory.c | ||
ep_weather_factory.h | ||
ep_weather_host.c | ||
ep_weather_host.h | ||
ep_weather_host.rc | ||
ep_weather_host.vcxproj | ||
ep_weather_host.vcxproj.filters | ||
ep_weather_provider_google_html.h | ||
ep_weather_provider_google_script.h | ||
ep_weather_utility.h | ||
ep_weather.c | ||
ep_weather.h | ||
packages.config | ||
resource.h |