this while (TRUE); means that "OS can't function anymore if this codepath is executed". It's a fatal, terminal way, so there is no power to save :)
On 04.01.2013 18:11, Javier Agustìn Fernàndez Arroyo wrote:
well, IMO, "while(true)" means CPU is permanently busy, while an ASSERT stops CPU from running .... just a matter of power saving....
and i repeat, its just an opinion....
On Fri, Jan 4, 2013 at 3:02 PM, Aleksey Bragin <aleksey@reactos.org mailto:aleksey@reactos.org> wrote:
With all respect, I don't understand many of these changes. Answering between the lines. On 04.01.2013 15:47, hbelusca@svn.reactos.org <mailto:hbelusca@svn.reactos.org> wrote: NTSTATUS @@ -643,7 +643,8 @@ /* FIXME: TODO */ DPRINT1("You have implemented the KD routines for searching PCI debugger" "devices, but you have forgotten to implement this routine\n"); - while (TRUE); + UNIMPLEMENTED; + ASSERT(FALSE); // while (TRUE); } It already prints a mandatory log message that this part is unimplemented. And execution is supposed to stop after printing this message, because it's meaningless to continue (that's why while(TRUE); was put there in the first place). static ULONG NTAPI @@ -678,7 +679,7 @@ { /* /PCILOCK is not yet supported */ UNIMPLEMENTED; - while (TRUE); + ASSERT(FALSE); // while (TRUE); } #endif /* Now create the correct resource list based on the supported bus ranges */ It already has UNIMPLEMENTED; and now you added an ASSERT(FALSE); which essentially is the same thing. And if continuation is possible, then just UNIMPLEMENTED would be enough. I'd like some general solution to this. Like, UNIMPLEMENTED_FATAL() or something like that. Any thoughts? Regards, Aleksey Bragin