[Asterisk-Dev] setpriority on non-Linux system
Thorsten Lockert
tholo at sigmasoft.com
Wed Apr 23 12:58:03 MST 2003
This patch makes Asterisk call setpriority on non-Linux systems
where sched_setscheduler() is not likely to exist
Index: asterisk.c
===================================================================
RCS file: /usr/cvsroot/asterisk/asterisk.c,v
retrieving revision 1.4
diff -u -r1.4 asterisk.c
--- asterisk.c 23 Apr 2003 16:24:09 -0000 1.4
+++ asterisk.c 23 Apr 2003 19:54:47 -0000
@@ -313,6 +313,7 @@
memset(&sched, 0, sizeof(sched));
/* We set ourselves to a high priority, that we might pre-empt everything
else. If your PBX has heavy activity on it, this is a good thing. */
+#ifdef __linux__
if (pri) {
sched.sched_priority = 10;
if (sched_setscheduler(0, SCHED_RR, &sched)) {
@@ -328,6 +329,21 @@
return -1;
}
}
+#else
+ if (pri) {
+ if (setpriority(PRIO_PROCESS, 0, -10) == -1) {
+ ast_log(LOG_WARNING, "Unable to set high priority\n");
+ return -1;
+ } else
+ if (option_verbose)
+ ast_verbose("Set to high priority\n");
+ } else {
+ if (setpriority(PRIO_PROCESS, 0, 0) == -1) {
+ ast_log(LOG_WARNING, "Unable to set normal priority\n");
+ return -1;
+ }
+ }
+#endif
return 0;
}
--
Thorsten Lockert | tholo at sigmasoft.com | Universe, n.:
2121 N. Lakeshore Dr. | tholo at openbsd.org | The problem.
Chapel Hill, NC 27514 | |
More information about the asterisk-dev
mailing list