Asynchronous events and Carbon Emacs

Hippo Man

Hippo Man
Before I try to find an appropriate Emacs forum or newsgroup, I want to see if anyone here has encountered and solved the situation that I am about to describe. It concerns the use of Carbon Emacs under Leopard.

I can run Carbon Emacs inside of a Terminal window by invoking the following command line from within Terminal:
/Applications/Emacs.app/Contents/MacOS/Emacs -nw FILE
... where FILE is the item that I want to edit.

If I run it in this way, events defined Emacs' special-event-map are invoked asynchronously and in real time. For example, if I define a [sigusr1] event, its special-event-map handler gets invoked as soon as I send a USR1 signal to the Emacs process. This is the behavior that I am expecting.

However, if I run Carbon Emacs without the -nw flag so that it creates and manages its own window outside of Terminal, these special-event-map events don't get invoked in real time any more, but rather, they only get invoked the next time I interact directly with the Emacs window with either the mouse or a keystroke. In other words, if I am trapping [sigusr1] as described above and send a USR1 signal to the process, nothing happens until I click in the Emacs window with the mouse or perform some sort of keyboard interaction with it, at which time the [sigusr1] events that have piled up all get processed, one after the other.

It's as if the windowed version of Carbon Emacs can only process special-event-map events in synchronization with the keyboard and mouse input queues.

Has anyone else seen this behavior? If so, is there any way that you know of to tell the windowed version of Carbon Emacs to process these special-event-map events in an asynchronous manner?

Once again, I'm happy to look for the answer to this in one of the online Emacs forums; I just wanted to try here first. Also, if you can suggest a particular Emacs-related forum in which people are likely to be able to answer this question, I would be grateful.

Thanks in advance.
.​
 
Back
Top