Details
Description
Due to the way MPEI install fonts, it can sometimes freeze while attempting to install them due to it waiting until conflicting programs that may be using the font system or otherwise preventing the task from completing are terminated.
h4. Steps to Reproduce
1. Try to install a extension that provides font files. Examples are the BackDrop and PureVision skin packages.
2. Sometimes, but not always, the installer will freeze on the font installation step.
3. To be able to successfully install the package, the computer needs to be restarted, and the extension installed again.
h4. Additional Information
The issue lies in that, for installing fonts, MPEI sends a font change message with a Broadcast handle with SendMessage and, since that function is blocking, MPEI hangs until it can successfully send the message.
A possible solution is to use SendMessageTimeOut which will cause MPEI to not hang but the font may not be installed until reboot and re-installing the extension.
Another possible solution is to use PostMessage, and is the one that will be used, as testing has shown it does fix both issues: MPEI does not hang and font gets installed correctly. In a worst case scenario, with this fix, the font may not be installed until reboot but the extension shouldn't need be reinstalled.
h4. Steps to Reproduce
1. Try to install a extension that provides font files. Examples are the BackDrop and PureVision skin packages.
2. Sometimes, but not always, the installer will freeze on the font installation step.
3. To be able to successfully install the package, the computer needs to be restarted, and the extension installed again.
h4. Additional Information
The issue lies in that, for installing fonts, MPEI sends a font change message with a Broadcast handle with SendMessage and, since that function is blocking, MPEI hangs until it can successfully send the message.
A possible solution is to use SendMessageTimeOut which will cause MPEI to not hang but the font may not be installed until reboot and re-installing the extension.
Another possible solution is to use PostMessage, and is the one that will be used, as testing has shown it does fix both issues: MPEI does not hang and font gets installed correctly. In a worst case scenario, with this fix, the font may not be installed until reboot but the extension shouldn't need be reinstalled.
Attachments
Issue Links
- links to