From: Liviu on
"Tim Roberts" <timr(a)probo.com> wrote...
> tanix(a)mongo.net (tanix) wrote:
>>
>>The objection I have that any evaluation should not be done
>>in SYNCHRONOUS manner. Because the task swith may drastically
>>affect what user experiences. Once you click on something,
>>you expect that something to get active. But what happens,
>>is something totally different gets your mouse/keyboard event.
>
> No, it doesn't. THAT is the part that you do not understand. The
> mouse/keyboard event goes to the process that owns the keyboard
> focus, even if that process is not the one that is currently
> executing.

Poorly written user-mode programs still can (and do) mess with event
sequencing, for example (mis)using GetAsyncKeyState vs. GetKeyState,
or recording an input event upon occurrence, but processing it later in
a potentially different context (such as browsers where a mouse click
may be deferred until the page is complete, and then land on a different
control than originally displayed/intended).

Of course, none of the above is an OS matter. But then remember that you
were responding to someone whose Windows crashes "every few days" yet
has no interest in fixing it and says "everything is in good shape" ;-)

Liviu



From: tanix on
In article <#OIz9YAkKHA.5020(a)TK2MSFTNGP02.phx.gbl>, "Liviu" <lab2k1(a)gmail.c0m> wrote:
>"Tim Roberts" <timr(a)probo.com> wrote...
>> tanix(a)mongo.net (tanix) wrote:
>>>
>>>The objection I have that any evaluation should not be done
>>>in SYNCHRONOUS manner. Because the task swith may drastically
>>>affect what user experiences. Once you click on something,
>>>you expect that something to get active. But what happens,
>>>is something totally different gets your mouse/keyboard event.
>>
>> No, it doesn't. THAT is the part that you do not understand. The
>> mouse/keyboard event goes to the process that owns the keyboard
>> focus, even if that process is not the one that is currently
>> executing.
>
>Poorly written user-mode programs still can (and do) mess with event
>sequencing, for example (mis)using GetAsyncKeyState vs. GetKeyState,
>or recording an input event upon occurrence, but processing it later in
>a potentially different context (such as browsers where a mouse click
>may be deferred until the page is complete, and then land on a different
>control than originally displayed/intended).
>
>Of course, none of the above is an OS matter. But then remember that you
>were responding to someone whose Windows crashes "every few days" yet
>has no interest in fixing it and says "everything is in good shape" ;-)

Well, except I am talking about the OS related operations
outside of ANY running user mode program.

What we are talking about here is stricly the OS issues.

The problem is windows is a message based system and not
a call based system. So, they inevitably have these kinds of issues
because of async nature of message based architecture.

We can argue about it all day long, but this is a fact of reality
of what windows is.

As a result, even the internal OS user mode programs, such as
explorer, may exhibit this kind of behavior.

In *nix the OS is designed as a call based system.
So, you are pretty much guaranteed that certain sequence
of events happens ininterruptingly, and that is precisely why
you never see these kinds of screwups and the entire desktop
refreshes that may take seconds on a desktop with all sorts
of items, especially while your system is busy up the hilt.

>Liviu
>
>
>

--
Programmer's Goldmine collections:

http://preciseinfo.org

Tens of thousands of code examples and expert discussions on
C++, MFC, VC, ATL, STL, templates, Java, Python, Javascript, PHP,
organized by major topics of language, tools, methods, techniques.

From: Alexander Grigoriev on

"tanix" <tanix(a)mongo.net> wrote in message
news:hi6dfc$4at$1(a)news.eternal-september.org...
> In *nix the OS is designed as a call based system.
> So, you are pretty much guaranteed that certain sequence
> of events happens ininterruptingly, and that is precisely why
> you never see these kinds of screwups and the entire desktop
> refreshes that may take seconds on a desktop with all sorts
> of items, especially while your system is busy up the hilt.
>

You're telling that Unix is running poorly designed GUI with enormous
overhead and lacks adaptive thread prioritisation, allowing background
threads to compromise GUI responsiveness?

If you like that better, you can change Windows settings to disable GUI
prioritization. In XP, go to system
properties->Advanced->Performance->Advanced->Processor scheduling, set to
Background. This also will increase dispatcher time slice.


From: Tim Roberts on
tanix(a)mongo.net (tanix) wrote:
>>Don't tell me that you can visually detect whether redraing is done in the
>>mouse ISR. After all, the screen image is only refreshed 60 times per
>>second.
>
>Why is there a redrawing of your entire desktop to begin with?

Your screen gets redrawn from the frame buffer 60 times a second the entire
time the computer is on. Otherwise, your screen would go black.

>Just click on + in the explorer to expand a directory, and your
>desktop redraws at EXACTLY that time.

No, it doesn't. First, your reflexes are not nearly good enough to detect
exactly when that click happens. User interface events take a virtual
eternity as far as the CPU is concerned. Second, because of screen
refresh, any changes in the frame buffer won't be visible to you for 1/60
second anyway. A 3 GHz CPU can execute 180,000,000 instructions in between
refreshes, and there will typically be 4 task switches in that time.

>ANY clue?

Apparently not.
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.
From: Leo Davidson on
On Jan 8, 4:48 am, ta...(a)mongo.net (tanix) wrote:
> The problem is windows is a message based system and not
> a call based system. So, they inevitably have these kinds of issues
> because of async nature of message based architecture.

Messages are not inherently asynchronous. SendMessage is,
semantically, the same as a synchronous remote procedure call. Some
messages are posted (async, PostMessage), some are sent (sync,
SendMessage) depending on what makes sense.

You have very strong opinions on things and keep calling people morons
when they correct you, yet you appear to not have the first clue about
what you are talking about.

I was hoping this thread would die out now that it's the new year. I
figured it was a desperate, last-ditch attempt to make it into one of
the lists, like "Dumbest Thread of 2000-2009" or something, within the
few remaining days of the year, but here we still are...