Re: Permanently disabling watchdog via config
Hi!toggle quoted message Show quoted text
Let me clear up some of the confusion: Watchdog, in computing, usually
refers to a component which monitors whether a system is alive. If the
system turns out to be unresponsive, the watchdog will step in and try
to get it out of the tight spot. NVDA has one, too. For certain
operations, if they do not complete within a certain time, the
watchdog jumps in and cancels the operation to make NVDA more
responsive. In short, whenever NVDA's core freezes, the watchdog will
force it out of the spot where it froze and back into safe territory.
Apologies to programmers for the over-simplification. The truth has to
do with threads and exceptions and stuff.
It's a bit like on an airplane. Let's say the pilot decides to switch
to autopilot. Theoretically, the plane can now do everything it takes
to get to its destination automatically, with the possible exception
of landing, which requires human clearance. Still, you wouldn't want
to fly with a dead pilot, so the pilot is required to press a button
every now and then to indicate they're still alive and breathing.
That's how a watchdog works.
Now my machine, being somewhat on the slow side as far as machines go,
seems to encounter a lot of those so-called freezes (unconscious
pilots), so the watchdog thinks it has a lot of work to do and ends up
cancelling many little interactions between NVDA and other processes.
As a result, data sometimes does not get relayed to NVDA the way it's
supposed to, and therefore NVDA sometimes fails to track focus.
Disabling the watchdog, on my system, makes NVDA a bit sluggish
sometimes as it wades through some slow spots, but it tends to arrive
at the correct answers more often, which outweighs that disadvantage.
When NVDA is running, I can tell the watchdog to go to sleep by typing
the following into the Python console:
So I'm pulling the watchdog's module into the console's scope and then
calling its terminate function, which simply tells it to stop
watching. Technically, the thread that does the watching just gets
killed. Poor doggy. Fortunately just a software one.
Anyway, now I'm looking for a way to have NVDA never even start the
watchdog, as I prefer living with the occasional sluggishness or crash
rather than have the system behave indeterministically.
All the best,
Am Mi., 5. Dez. 2018 um 18:20 Uhr schrieb Gene <gsasner@...>: