UI handlers
Logical processes incorporate the concept of a current UI handler. This object provides UI services to the logical process. Currently, the only service available is debugging. That is, when an exception occurs and a debugger is needed, the current UI handler is asked to provide the UI for the debugger. Since the machine signaling the exception may not have UI facilities, this handler may be remote. UI handlers need only support the reportError:resumable:startBP: method. The reporting of errors via the UI handler is controlled using the following API:
SstDebuggingSupport reportErrorsThroughUIHandler: true (or false)
This option can also be set using the menu choice SST > Report Errors via UI Handler of the Tools menu.
Logical process execution is such that the current, non-nil UI handler is passed with a logical process when messages are sent. That is, if the logical process does not already have a UI handler (it is nil) and the context's default UI handler (context defaultUIHandler) is not nil, the default handler is attached to the outgoing message.
When a message with a UI handler arrives in an object space, the newly arrived handler is made the UI handler for the process which processes the request. When execution of the request is completed, the UI handler is restored to its original setting.
Note that you can install your own UI handlers on particular logical processes as they pass through their space. It is good form, however, to ensure that the original value is restored when leaving your domain.
Last modified date: 04/21/2020