CAPI dialogs and multiprocessing
Hi! I have a CAPI dialog which performs some network operations when a button is clicked. Since this can take a while to finish, I want to show some visual feedback to the user, for example disable the button just clicked. (defun send-callback (interface) (setf (capi:simple-pane-enabled (send-button interface)) nil) … do network stuff ... (setf (capi:simple-pane-enabled (send-button interface)) t)) The problem is that the CAPI thread is busy during the network request, and the updates to the interface never become visible. I've tried to run the network request in a thread: (mp:process-run-function "Sending data…" nil #'(lambda () … do network stuff … (capi:execute-with-interface interface #'(lambda () (setf (capi:simple-pane-enabled (send-button interface)) t))) But this makes the program lock, probably a thread deadlock. Any suggestions? Regards Erik