Bring back -fstack-protector-all on iOS.
[chromium-blink-merge.git] / base / process / process_posix.cc
blob3d8b31d0352e6c027a2d132255654ff3d8692e13
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/process/process.h"
7 #include <sys/resource.h>
8 #include <sys/time.h>
9 #include <sys/types.h>
11 #include "base/logging.h"
12 #include "base/process/kill.h"
14 namespace base {
16 // static
17 Process Process::Current() {
18 return Process(GetCurrentProcessHandle());
21 ProcessId Process::pid() const {
22 if (process_ == 0)
23 return 0;
25 return GetProcId(process_);
28 bool Process::is_current() const {
29 return process_ == GetCurrentProcessHandle();
32 void Process::Close() {
33 process_ = 0;
34 // if the process wasn't terminated (so we waited) or the state
35 // wasn't already collected w/ a wait from process_utils, we're gonna
36 // end up w/ a zombie when it does finally exit.
39 void Process::Terminate(int result_code) {
40 // result_code isn't supportable.
41 if (!process_)
42 return;
43 // We don't wait here. It's the responsibility of other code to reap the
44 // child.
45 KillProcess(process_, result_code, false);
48 #if !defined(OS_LINUX)
49 bool Process::IsProcessBackgrounded() const {
50 // See SetProcessBackgrounded().
51 return false;
54 bool Process::SetProcessBackgrounded(bool value) {
55 // POSIX only allows lowering the priority of a process, so if we
56 // were to lower it we wouldn't be able to raise it back to its initial
57 // priority.
58 return false;
61 // static
62 bool Process::CanBackgroundProcesses() {
63 return false;
66 #endif
68 int Process::GetPriority() const {
69 DCHECK(process_);
70 return getpriority(PRIO_PROCESS, process_);
73 } // namspace base