GUPP 1.07 compatibility
When AFPBridge and EasyAccess are both in use, and EasyAccess is loaded before AFPBridge, the system will successfully boot to the Finder, but then it will hang when launching another program.
I would guess this relates to a bad interaction between EasyAccess’s tool patches and the code in AFPBridge to ensure the Marinetti tool stub always stays loaded (calling LoadOneTool followed by SetDefaultTPT), but I haven’t worked out exactly why it’s happening.
A workaround is to reorder the directory entries so that AFPBridge loads before EasyAccess, which seems to make things work fine.
Calling TLStartUp/TLShutDown in our init seems to work around this. Apple’s documentation says that shouldn’t be done, but it might work OK for an init that is loaded only at boot time. I still don’t know the root cause of the problem.
This problem seems to be related to GUPP 1.07, and may manifest in some cases even when not using Easy Access (for example, the system may hang when running a P8 program for the second time).
Specifically, the following feature from GUPP 1.07 is probably the root cause of the issue:
Patches OS code to not dump toolsets from ram on app exit if current TSPtr is not default (Helps Wolfenstein 3D GS 1.0)
(See also an old discussion on Delphi.)
I suspect this interacts badly with the way we use SetDefaultTPT, which GUPP may interpret as setting a non-default TSPtr.
This can be worked around by using GUPP 1.06 instead, or not using GUPP at all. Some orderings of inits also don’t seem to produce the symptoms, although I’m not sure they fully solve the problem.