Lan Barnes wrote:
If you're having trouble with UI responses, you _are_ using the wrong
language.
I have had innumerable times where a Tk application would do something
truly screwball because it got in a race condition. Generally I had to
go find the variable that raced, declare it in such a way that the
system would go "Oh, *that* variable that might get into a race. I'll
go lock that now.", and then the UI would be okay. Until the next race.
Lather. Rinse. Repeat.
I see this over ... and over ... and over. In *every* GUI toolkit.
All I have to do is ask for a Canvas in which to draw something myself
and the UI abstractions come crashing down.
Which thread am I in? Oh, you actually wanted *performance*? BWHAHAHA!
Silly person. We pass all drawing calls through 12 layers of
indirection because we can't figure out what to lock, so we have to lock
*every call*. And that nice shiny multi-core CPU? Fugeddaboutit. Your
compute thread will spend its life waiting for our UI thread to get back
to you sometime this century--because we can't buffer multiple calls
because we can't figure out dependencies. Even when nothing is
changing. Because we have to lock *everything*. Several times.
Recursively, just for grins.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list