[mcclim-devel] question about display functions and control apps

rpgoldman at real-time.com rpgoldman at real-time.com
Tue Dec 28 21:41:33 UTC 2004


>>>>> "Paolo" == Paolo Amoroso <amoroso at mclink.it> writes:

    Paolo> Paolo Amoroso <amoroso at mclink.it> writes:
    >> If I understand correctly, in this case you may call
    >> REDISPLAY-FRAME-PANE, typically from an application command or some
    >> state updating function.  A program that uses this approach is:
    >> 
    >> KYTRON on the Moon
    >> http://artm-friends.at/rm/kytron/kytron-clim.html
    >> 
    >> Check the CLIM 2 version:
    >> 
    >> http://artm-friends.at/rm/kytron/kytron2.lisp.txt
    >> 
    >> See for example the commands for adding a new element--crater,
    >> mountain, ecc.--to the environment.

    Paolo> More precisely, I meant `com-run-simulation' and
    Paolo> `com-time-100-steps'.

Actually, if I understand Hef's comments correctly (and I haven't
misunderstood the kytron code), this isn't really the right model.
The problem is that the kytron is still really a synchronously
operating simulation:  the sim does one step, then you call
clim:redisplay-frame-pane, repeat.

The problem with control apps, is that there will be a separate thread
that will be latching state updates, and will not be working in synch
with the UI.  So you might get something unpleasant happening if you
invoke clim:redisplay-frame-pane from that separate thread (assuming[1]
that the clim redisplay function is not thread-safe).

Andy suggests weird-irc as another model, but it seems not to be
thread-safe.  I will look into that further now.

I hope that this design question is of sufficient generality to be of
wide interest, and that I'm not wasting everyone's time....

Best,
r



Footnotes: 
[1]  Out of force of habit, I almost typed "without loss of
generality" here! :->




More information about the mcclim-devel mailing list