Hi folks - i am doing a driver and have a couple of threads running in it -
one threas is to handle instruction dispatching to the hardware and a second
to handle interrupt capturing. One can guess the former does depend on the
latter via event handles (to signal an interrupt from the device that the
first thread checks HW to see if it can start dispatching the next one). So
the problem i have here is that in the cases where we have too many
interrupts coming around... it happens occasionally that the 1st thread's
WaitForSingleObject just dies. Never returns. I call this function with a
timeout of 3 miliseconds (its a very fast CPU, so 3 miliseconds is very
long). And when this function hangs, its stuck forever,... the rest of the
system is actually running - i can break into other threads and set
breakpoints and see them move. But within this WaitForSingleObject - i am not
sure what happened - it reaches until some lower level kernel function - but
when i try to set breakpoints there it gets triggered too frequently because
many other processes also invoke object inspection functions.
Anyone has any idea how i can overcome this problem?