- if(get_config_string(lookup_config(config_tree, "ProcessPriority"), &priority)) {
- if(!strcasecmp(priority, "Normal")) {
-#ifdef HAVE_MINGW
- SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
-#else
- nice(0);
-#endif
- } else if(!strcasecmp(priority, "Low")) {
-#ifdef HAVE_MINGW
- SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);
-#else
- nice(10);
-#endif
- } else if(!strcasecmp(priority, "High")) {
-#ifdef HAVE_MINGW
- SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
-#else
- nice(-10);
-#endif
- } else {
- logger(LOG_ERR, _("Invalid priority `%s`!"), priority);
- goto end;
- }
- }
+ /* Change process priority */
+
+ if(get_config_string(lookup_config(config_tree, "ProcessPriority"), &priority)) {
+ if(!strcasecmp(priority, "Normal")) {
+ if(setpriority(NORMAL_PRIORITY_CLASS) != 0) {
+ logger(LOG_ERR, "System call `%s' failed: %s",
+ "setpriority", strerror(errno));
+ goto end;
+ }
+ } else if(!strcasecmp(priority, "Low")) {
+ if(setpriority(BELOW_NORMAL_PRIORITY_CLASS) != 0) {
+ logger(LOG_ERR, "System call `%s' failed: %s",
+ "setpriority", strerror(errno));
+ goto end;
+ }
+ } else if(!strcasecmp(priority, "High")) {
+ if(setpriority(HIGH_PRIORITY_CLASS) != 0) {
+ logger(LOG_ERR, "System call `%s' failed: %s",
+ "setpriority", strerror(errno));
+ goto end;
+ }
+ } else {
+ logger(LOG_ERR, "Invalid priority `%s`!", priority);
+ goto end;
+ }
+ }