The quoted text is from makeshyft, but I can at least explain my own understanding of the situation:[-hh] wrote:Now help me please.FourthWorld wrote:...... waiting 0 with messages does add time to how long a handle takes, so for whatever reason its not really waiting 0.
Until now I understood this as follows.
The "0" is the waiting time for executing the handle, the additional time you speak of is used elsewhere, for example for screen updates one wishes to have during the loop.
Certainly, if one wishes to have such updates, one has to wait some time more, in sum of small parts, until it's all done.
As far as I can see you wish now to make the windowing process responsive *all* the time during *all* handlers.
My humble computations say that this would sum up to a giant slow down of the whole engine.
What do I overlook with this point of view?
Traditionally, things happening in an xTalk program are evident on screen, and when the developer wants to stop screen updates temporarily (such as for performance gain) we use "lock screen".
This was the convention with all xTalks for many years until LiveCode was ported to OS X, where apparently the Carbon APIs made it difficult to maintain this. The "wait 0" trick was arrived at as a workaround for that Mac problem, and apparently may be needed due to recent changes in the Win APIs as well.
The Mac issue was addressed in Bug Report #10333 - Mark Waddingham's notes there clarify his view, and on OS X we no longer need to use the "wait 0" workaround in v6.7 or 7.0, which use the Cocoa APIs:
http://quality.runrev.com/show_bug.cgi?id=10333
I've added myself as a CC to the report makeshyft submitted, and will be interested to see how the core dev team responds to this Win variant.
On Linux, things I do in my scripts are visible on screen until I explicitly request the screen be locked with "lock screen".