Avoid attempting to recursively lock the console mutex by disabling warnings in gpu_fanpercent when fanspeed monitoring fails on windows. Debugged by luke-jr.
diff --git a/adl.c b/adl.c
index 7f12ecd..4e3ecb2 100644
--- a/adl.c
+++ b/adl.c
@@ -703,6 +703,8 @@ int gpu_fanpercent(int gpu)
ret = __gpu_fanpercent(ga);
unlock_adl();
if (unlikely(ga->has_fanspeed && ret == -1)) {
+#if 0
+ /* Recursive calling applog causes a hang, so disable messages */
applog(LOG_WARNING, "GPU %d stopped reporting fanspeed due to driver corruption", gpu);
if (opt_restart) {
applog(LOG_WARNING, "Restart enabled, will attempt to restart cgminer");
@@ -716,6 +718,14 @@ int gpu_fanpercent(int gpu)
ga->twin->twin = NULL;;
ga->twin = NULL;
}
+#endif
+ if (opt_restart)
+ app_restart();
+ ga->has_fanspeed = false;
+ if (ga->twin) {
+ ga->twin->twin = NULL;;
+ ga->twin = NULL;
+ }
}
return ret;
}