Changeset 3051 for trunk/src/kmk/main.c


Ignore:
Timestamp:
Jul 24, 2017, 12:59:59 PM (8 years ago)
Author:
bird
Message:

kmk,kWorker: More aggressive handling of --nice (and --priority) on windows.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/main.c

    r3041 r3051  
    863863{
    864864# ifdef WINDOWS32
    865   DWORD dwPriority;
     865  DWORD dwClass, dwPriority;
     866
    866867  if (process_affinity)
    867868    if (!SetProcessAffinityMask (GetCurrentProcess (), process_affinity))
    868       fprintf (stderr, "warning: SetPriorityClass (,%#x) failed with last error %d\n",
     869      fprintf (stderr, "warning: SetProcessAffinityMask (,%#x) failed with last error %d\n",
    869870               process_affinity, GetLastError ());
    870871
     
    872873    {
    873874      case 0:     return;
    874       case 1:     dwPriority = IDLE_PRIORITY_CLASS; break;
    875       case 2:     dwPriority = BELOW_NORMAL_PRIORITY_CLASS; break;
    876       case 3:     dwPriority = NORMAL_PRIORITY_CLASS; break;
    877       case 4:     dwPriority = HIGH_PRIORITY_CLASS; break;
    878       case 5:     dwPriority = REALTIME_PRIORITY_CLASS; break;
     875      case 1:     dwClass = IDLE_PRIORITY_CLASS;         dwPriority = THREAD_PRIORITY_IDLE; break;
     876      case 2:     dwClass = BELOW_NORMAL_PRIORITY_CLASS; dwPriority = THREAD_PRIORITY_BELOW_NORMAL; break;
     877      case 3:     dwClass = NORMAL_PRIORITY_CLASS;       dwPriority = THREAD_PRIORITY_NORMAL; break;
     878      case 4:     dwClass = HIGH_PRIORITY_CLASS;         dwPriority = 0xffffffff; break;
     879      case 5:     dwClass = REALTIME_PRIORITY_CLASS;     dwPriority = 0xffffffff; break;
    879880      default:    fatal (NILF, _("invalid priority %d\n"), process_priority);
    880881    }
    881   if (!SetPriorityClass (GetCurrentProcess (), dwPriority))
     882  if (!SetPriorityClass (GetCurrentProcess (), dwClass))
    882883    fprintf (stderr, "warning: SetPriorityClass (,%#x) failed with last error %d\n",
     884             dwClass, GetLastError ());
     885  if (dwPriority != 0xffffffff
     886      && !SetThreadPriority (GetCurrentThread (), dwPriority))
     887    fprintf (stderr, "warning: SetThreadPriority (,%#x) failed with last error %d\n",
    883888             dwPriority, GetLastError ());
    884889
Note: See TracChangeset for help on using the changeset viewer.