Explorar o código

lib/osutil: Skip setLowPriority in Windows if already lower (fixes #6597) (#8993)

tomasz1986 %!s(int64=2) %!d(string=hai) anos
pai
achega
d70eb569f2
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      lib/osutil/lowprio_windows.go

+ 5 - 0
lib/osutil/lowprio_windows.go

@@ -21,6 +21,11 @@ func SetLowPriority() error {
 	}
 	defer windows.CloseHandle(handle)
 
+	if cur, err := windows.GetPriorityClass(handle); err == nil && (cur == windows.IDLE_PRIORITY_CLASS || cur == windows.BELOW_NORMAL_PRIORITY_CLASS) {
+		// We're done here.
+		return nil
+	}
+
 	if err := windows.SetPriorityClass(handle, windows.BELOW_NORMAL_PRIORITY_CLASS); err != nil {
 		return fmt.Errorf("set priority class: %w", err)
 	}