Ge van Geldorp wrote:
I haven't looked at your code yet, but the comment
worries me. Does it mean
that if a usermode app is stuck in a "while (1) ;" loop stuff queued by
IoAllocateWorkItem( ) never gets executed? If I misunderstood, nevermind,
disregard this message. If this is true we're in big trouble. We're using
work items in a lot of places to get from DPC level to PASSIVE level. For
example, the networking stack queues a work item when data was received from
the network card. I'd hate to see a stuck usermode app halt all network
communications...
GvG
Hi,
I've simply made work threads have the same priorities as in NT, so now
they act the same (that is, lower priority then normal threads).
I'm not quite sure how the scheduler in ReactOS handles your scenario
however; while it is true that when an app is stuck and its thread's
quantum runs out, the NT scheduler will prefer to choose a thread with a
higher priority; however, after a while, the threads with lower priority
will have been in a wait state for a long time, the kernel will realize
this, boost their priorities and have them run again.
Best regards,
Alex Ionescu