level == CPUBoostController::Level::None ||
level == CPUBoostController::Level::Weak) {
CPUBoostController::DoBoost(getpid(), CPUBoostController::Level::Strong,
- -1);
+ -1, true);
}
g_timeout_add(1000, [](gpointer data) {
namespace launchpad {
-void CPUBoostController::DoBoost(pid_t pid, Level level, int timeout_msec) {
+void CPUBoostController::DoBoost(pid_t pid, Level level, int timeout_msec,
+ bool reset_on_fork) {
if (pid < 1)
return;
.tid = &pid,
.tid_count = 1,
};
-
+ int flag = reset_on_fork ? CPU_BOOSTING_RESET_ON_FORK : 0;
int ret = resource_set_cpu_boosting(res_pid,
static_cast<cpu_boosting_level_e>(level),
- static_cast<cpu_boosting_flag_e>(0), timeout_msec);
+ static_cast<cpu_boosting_flag_e>(flag), timeout_msec);
if (ret != 0)
_E("resource_set_cpu_boosting() is failed. error: %d", ret);
else
Weak,
};
- static void DoBoost(pid_t pid, Level level, int timeout_msec);
+ static void DoBoost(pid_t pid, Level level, int timeout_msec,
+ bool reset_on_fork = false);
static void Clear(pid_t pid);
static int GetBoostLevel(pid_t pid, Level* level);
};