[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Without-interrupts and event-handling
- To: info-mcl@ministry.cambridge.apple.com
- Subject: Without-interrupts and event-handling
- From: Andrew Newell Mickish <am2q+@andrew.cmu.edu>
- Date: Thu, 14 Apr 1994 02:09:24 -0400
- Newsgroups: comp.lang.lisp.mcl
- Organization: Computer Science Department, Carnegie Mellon, Pittsburgh, PA
It seems that any function that is called inside an event-handler method is
implicitly wrapped inside ccl:without-interrupts. Is this definitely the case?
I have a function which does some animation -- basically it repeatedly redraws
the contents of a window. This function can be called explicitly from the
listener, or by the ccl:view-click-event-handler when you click in the window.
MCL's event handling behavior is different, depending on which way I invoke the
function. If I call it from the listener, then while the window is animating,
I can click around on other windows, bringing them to the front as I click,
and process various other events.
But if the animation function is invoked from the event-handler, then all
event processing (like clicks in other windows) are queued up until the
function returns, and then the events are all processed at once.
I would like to be able to process other events while the function executes,
regardless of how it was invoked. Is there a way to re-enable interrupts
inside the event-handler, or not disable them in the first place?
Also, is there any way to trace ccl:without-interrupts? It is apparently
not a function or a macro, but a "Special Form". Perhaps there is some
auxiliary function that can be traced, like you can trace
ccl::call-with-focused-view when you really want to know about the macro
ccl:with-focused-view.
Thanks for any suggestions,
--Andrew Mickish