[PATCH 4/4] shell32: Avoid a deadlock between explorer.exe and winemenubuilder.exe.
Zebediah Figura
z.figura12 at gmail.com
Wed Nov 29 16:50:55 CST 2017
On 11/29/2017 02:21 PM, Alexandre Julliard wrote:
> Zebediah Figura <z.figura12 at gmail.com> writes:
>
>> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
>> ---
>> This is an anticipatory change. Creating shell links from Progman (i.e.
>> explorer.exe) will cause a deadlock if the icon is missing or (as in the tests)
>> the link is immediately deleted.
>
> Checking the module name is pretty hackish. Also the check can't work
> anyway, because GetModuleFileNameW returns a full path.
>
Could I request an opinion on the best way to solve this problem?
* The process that creates the link could be explorer, if the process
uses the Progman DDE interface. Additionally (though perhaps improbably)
it could be a different process than the one that creates the icon. I
have a hard time thinking 5e28f7ad92e39bdd75cf291e22b7ebae00032e60 was a
correct step.
* More correct than waiting on the process handle would be waiting on
the icon file itself using FindFirstChangeNotification() etc, but we
can't depend on the icon ever being created.
* Reverting 5e28f7a and using a RunOnce entry does have the disadvantage
that it might never be run. I would personally imagine it acceptable to
at least fix it so the link is created (if not the icon) but others
might disagree. It would also be better if we could run winemenubuilder
on Wine "shutdown" rather than the next startup, assuming this is
possible. Would this solution be acceptable?
More information about the wine-devel
mailing list