Note: groups.io will be down for maintenance on Wednesday, October 5th, starting at 9AM Pacific Time (4PM Wednesday October 5, 2022 UTC), for approximately one hour.
Re: Permanently disabling watchdog via config
Hi,toggle quoted messageShow quoted text
There is no such config option to turn off watchdog at startup, although I think a command line switch might help (if implemented) or modify the source code. The best person to talk to regarding NVDA watchdog is James Teh (Mozilla) who is the main architect of that module.
From: email@example.com <firstname.lastname@example.org> On Behalf Of Felix G.
Sent: Wednesday, December 5, 2018 9:37 AM
Subject: Re: [nvda] Permanently disabling watchdog via config
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@...>: