[mcclim-devel] question about display functions and control apps
rpgoldman at real-time.com
rpgoldman at real-time.com
Thu Jan 6 16:26:27 UTC 2005
I'm afraid I'm restarting an old discussion, but I've had it on the
backburner, and now that I'm moving forward, I'm not quite sure how to
finish out the solution.
>>>>> "AH" == Andy Hefner <ahefner at gmail.com> writes:
AH> What I might do is run a separate thread from the GUI that monitors
AH> external conditions. It can close over your frame event queue, and
AH> communicate changes to the GUI via events as necessary. Just define
AH> your own event subclasses and write handle-event methods for them,
AH> which will run in the GUI thread and can perform the necessary
AH> updates. McCLIM itself already works in this fashion on threaded
AH> platforms, events are collected from CLX in a background thread which
AH> queues them up for the applications to handle.
I think this is the right solution for control applications. One has
a second thread, which gets status updates and latches them into
slots in the application frame, and then we queue up an event. Here
are a couple of follow-ons, though:
1. Do I just make an event that will translate into setting
frame-needs-redisplay?
2. How do I ensure that the slots that I'm latching into are stable
over the redisplay? I imagine I make a clim-sys:lock object to
make the update process and the redisplay process mutually
exclusive, but can anyone give me a little guidance about what to
protect in the CLIM code?
I have been thinking that I should make a method for
redisplay-frame-pane for my application that will hold the lock
and (call-next-method). Is this the right level of granularity?
Thanks!
Robert
More information about the mcclim-devel
mailing list