Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d381ec19 authored by Sadrul Chowdhury's avatar Sadrul Chowdhury Committed by Automerger Merge Worker
Browse files

Merge "Boost process priority during fork." into main am: a6519982

parents 9190062c a6519982
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -2416,6 +2416,11 @@ pid_t zygote::ForkCommon(JNIEnv* env, bool is_system_server,
                         const std::vector<int>& fds_to_ignore,
                         bool is_priority_fork,
                         bool purge) {
  ATRACE_CALL();
  if (is_priority_fork) {
    setpriority(PRIO_PROCESS, 0, PROCESS_PRIORITY_MAX);
  }

  SetSignalHandlers();

  // Curry a failure function.
@@ -2501,6 +2506,10 @@ pid_t zygote::ForkCommon(JNIEnv* env, bool is_system_server,
  // We blocked SIGCHLD prior to a fork, we unblock it here.
  UnblockSignal(SIGCHLD, fail_fn);

  if (is_priority_fork && pid != 0) {
    setpriority(PRIO_PROCESS, 0, PROCESS_PRIORITY_DEFAULT);
  }

  return pid;
}

@@ -2570,6 +2579,7 @@ static jint com_android_internal_os_Zygote_nativeForkSystemServer(
        JNIEnv* env, jclass, uid_t uid, gid_t gid, jintArray gids,
        jint runtime_flags, jobjectArray rlimits, jlong permitted_capabilities,
        jlong effective_capabilities) {
  ATRACE_CALL();
  std::vector<int> fds_to_close(MakeUsapPipeReadFDVector()),
                   fds_to_ignore(fds_to_close);

@@ -2645,6 +2655,7 @@ static jint com_android_internal_os_Zygote_nativeForkApp(JNIEnv* env,
                                                         jintArray managed_session_socket_fds,
                                                         jboolean args_known,
                                                         jboolean is_priority_fork) {
  ATRACE_CALL();
  std::vector<int> session_socket_fds =
      ExtractJIntArray(env, "USAP", nullptr, managed_session_socket_fds)
          .value_or(std::vector<int>());
@@ -2660,6 +2671,7 @@ int zygote::forkApp(JNIEnv* env,
                    bool args_known,
                    bool is_priority_fork,
                    bool purge) {
  ATRACE_CALL();

  std::vector<int> fds_to_close(MakeUsapPipeReadFDVector()),
                   fds_to_ignore(fds_to_close);