forked from intel/memory-optimizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPidContext.h
46 lines (33 loc) · 775 Bytes
/
PidContext.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
* SPDX-License-Identifier: GPL-2.0
*
* Copyright (c) 2019 Intel Corporation
*
* Authors: Yuan Yao <yuan.yao@intel.com>
*
*/
#ifndef _PIDCONTEXT_H_
#define _PIDCONTEXT_H_
#include <sys/user.h>
#include <sys/types.h>
#include <atomic>
class PidContext
{
public:
void add_dram_quota(long value)
{ dram_quota += value; }
void sub_dram_quota(long value)
{ dram_quota -= value; }
long get_dram_quota(void)
{ return dram_quota.load(std::memory_order_acquire); }
void set_dram_quota(long value)
{ dram_quota.store(value, std::memory_order_release); }
void set_pid(pid_t value)
{ pid = value; }
pid_t get_pid(void)
{ return pid; }
private:
std::atomic_long dram_quota = {0};
pid_t pid = -1;
};
#endif