提交 a541519f authored 作者: Mike Jerris's avatar Mike Jerris

Merge pull request #690 in FS/freeswitch from…

Merge pull request #690 in FS/freeswitch from ~SJTHOMASON/freeswitch:bugfix/FS-8195-compatibility-with-solaris-11-process to master

* commit '4b9bf111':
  Allow Solaris privileges to work on both Solaris and derivatives
......@@ -982,24 +982,30 @@ SWITCH_DECLARE(int32_t) set_realtime_priority(void)
#ifdef SOLARIS_PRIVILEGES
/* request the privileges to elevate the priority */
if (priv_set(PRIV_ON, PRIV_EFFECTIVE, PRIV_PROC_PRIOCNTL, NULL) < 0) {
#ifdef PRIV_PROC_PRIOUP
/* fallback to PRIV_PROC_PRIOUP on SmartOS */
fprintf(stderr, "WARN: Failed to acquire proc_priocntl privilege (%s)\n", strerror(errno));
} else {
if (sched_setscheduler(0, SCHED_FIFO, &sched) < 0) {
fprintf(stderr, "ERROR: Failed to set SCHED_FIFO scheduler (%s)\n", strerror(errno));
} else {
return 0;
if (priv_set(PRIV_ON, PRIV_EFFECTIVE, PRIV_PROC_PRIOUP, NULL) < 0) {
fprintf(stderr, "ERROR: Failed to acquire proc_prioup privilege (%s)\n", strerror(errno));
return -1;
}
}
if (priv_set(PRIV_ON, PRIV_EFFECTIVE, PRIV_PROC_PRIOUP, NULL) < 0) {
fprintf(stderr, "ERROR: Failed to acquire proc_prioup privilege (%s)\n", strerror(errno));
#else
fprintf(stderr, "ERROR: Failed to acquire proc_priocntl privilege (%s)\n", strerror(errno));
return -1;
#endif
}
if (sched_setscheduler(0, SCHED_FIFO, &sched) < 0) {
fprintf(stderr, "WARN: Failed to set SCHED_FIFO scheduler (%s)\n", strerror(errno));
} else {
if (setpriority(PRIO_PROCESS, 0, -10) < 0) {
fprintf(stderr, "ERROR: Could not set nice level\n");
return -1;
}
return 0;
}
if (setpriority(PRIO_PROCESS, 0, -10) < 0) {
fprintf(stderr, "ERROR: Could not set nice level\n");
return -1;
}
return 0;
#else
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论