The function
execute-with-interface
is a useful way of operating on an interface owned by another process. It takes a top-level interface, a function and some arguments and queues the function to be run by that process when it next enters its event loop (for an interface owned by the current process, it calls the function immediately).
Note:
All accesses (reads as well as writes) on a CAPI interface and its sub-elements should be performed in the interface process. Within a callback on the interface this happens automatically, but
execute-with-interface
is a useful utility in other circumstances.
(setq a (capi:display (make-instance 'capi:interface)))
(capi:execute-with-interface
a 'break
"Break inside the interface process")