Re: The revelation of St. f0dder the Divine
- From: Frank Kotler <fbkotler@xxxxxxxxxxx>
- Date: Wed, 24 Aug 2005 03:09:20 -0400
Beth wrote:
Frankie say:
again, it seems...Beth wrote:
You've shown before that you don't entirely grasp how the "priority" scheduling scheme in Windows works, hutch...and you're doing it
It's my understanding that Hutch knows perfectly well that a polling loop is a very "inconsiderate" thing to do in a multi-tasking OS. But the blocking alternative crashes on certain hardware/version combinations. (I guess there's some question if this is true or not, but that's why Hutch does it that way... I understand)
I'd require some pretty direct evidence of this to believe it...
No such evidence. I misunderstood the situation. Apparently, the "leaking handles" are the workaround for the bug. The polling loop is because... I don't know why.
Because, basically, a multi-tasking OS that doesn't do "blocking" properly? That's not a "bug"...that's a "catastrophic error" of the highest proportions...
Well, even in my misunderstanding, I didn't think anyone was claiming that blocking *generally* didn't work. I thought it was just this one... WaitSingleObject, or whatever they call sys_waitpid :)
But that's *not* what Hutch was saying. Apparently "deallocating the handles" caused the crash. This doesn't sound like it would be hardware-specific either, but the old deviant hardware in question was *around* the time of the "too fast" loop instruction. The solution to *that*, of course, was to slow down the loop instruction(!!!). But that patch couldn't be applied to existing hardware :) So MS apparently came out with a patch for win95 that allowed it to run. But they might have missed a spot.
A bug that only manifests itself on certain hardware/software combinations is possible. It's also possible that Hutch is mistaken about the reason for the behavior he's seeing. I doubt if he's making it up.
....
Exactly; And "sleep" is a _BLOCKING API_...the application "blocks" on the condition of a "timer" triggering it to "wake up" again...
Yeah, but the benefit here is that it yeilds the timeslice (I assume), so we don't poll continuously for the full timeslice. Again, I don't think anyone's claiming that blocking doesn't work at all on this HW/SW.
[in the unlikely event that I both boot Windows and run Masm :)]
If the "test" were to prove "positive" that there's a problem...then I'd immediately want to scan every line of _HUTCH'S PROGRAM_ to find the "flaw" that _HE_ (not the OS) is making...
AFAIK, the code is available...
....
Well, nevermind, Frank...you've got Linux running there...which has the full array of "IPC" stuff (more than Windows, which leaves out "shared memory" and such)...
On my last old deviant install of Linux, my old deviant Netscape checked for the existance of the file ~/.netscape/lock to determine if there was an instance already running :)
....
But, indeed, actions speak louder than words...let your own machine show you this:
Concur.asm (MASM syntax)
[snip]
Yeah... next time I boot Windows and run Masm, I'll try it :) Nice to see you posting some code!
....
...welcome to the real world! ;)
No thanks, I'm all set :)
Best, Frank .
- References:
- The revelation of St. f0dder the Divine
- From: hutch--
- Re: The revelation of St. f0dder the Divine
- From: Beth
- Re: The revelation of St. f0dder the Divine
- From: Frank Kotler
- Re: The revelation of St. f0dder the Divine
- From: Beth
- The revelation of St. f0dder the Divine
- Prev by Date: Re: Technical superiority of polling loops
- Next by Date: Re: US Military Dead during Iraq War
- Previous by thread: Re: The revelation of St. f0dder the Divine
- Next by thread: Re: The revelation of St. f0dder the Divine
- Index(es):
Relevant Pages
|