our
@EXPORT_OK
=
qw(cgroup)
;
PROCS_INTERFACE
=>
'cgroup.procs'
,
TYPE_INTERFACE
=>
'cgroup.type'
,
THREADS_INTERFACE
=>
'cgroup.threads'
,
EVENTS_INTERFACE
=>
'cgroup.events'
,
CONTROLLERS_INTERFACE
=>
'cgroup.controllers'
,
SUBTREE_CONTROL_INTERFACE
=>
'cgroup.subtree_control'
,
MAX_DESCENDANT_INTERFACE
=>
'cgroup.max.descendants'
,
MAX_DEPTH_INTERFACE
=>
'cgroup.max.depth'
,
STAT_INTERFACE
=>
'cgroup.stat'
,
};
has
io
=>
sub
{
my
$io
= Mojo::IOLoop::ReadWriteProcess::CGroup::v2::IO->new(
cgroup
=>
shift
);
Scalar::Util::weaken
$io
->{cgroup};
return
$io
;
};
has
cpu
=>
sub
{
my
$cpu
= Mojo::IOLoop::ReadWriteProcess::CGroup::v2::CPU->new(
cgroup
=>
shift
);
Scalar::Util::weaken
$cpu
->{cgroup};
return
$cpu
;
};
has
memory
=>
sub
{
my
$memory
= Mojo::IOLoop::ReadWriteProcess::CGroup::v2::Memory->new(
cgroup
=>
shift
);
Scalar::Util::weaken
$memory
->{cgroup};
return
$memory
;
};
has
pid
=>
sub
{
my
$pid
= Mojo::IOLoop::ReadWriteProcess::CGroup::v2::PID->new(
cgroup
=>
shift
);
Scalar::Util::weaken
$pid
->{cgroup};
return
$pid
;
};
has
rdma
=>
sub
{
my
$rdma
= Mojo::IOLoop::ReadWriteProcess::CGroup::v2::RDMA->new(
cgroup
=>
shift
);
Scalar::Util::weaken
$rdma
->{cgroup};
return
$rdma
;
};
sub
add_process {
shift
->_appendln(+PROCS_INTERFACE() =>
pop
) }
sub
process_list {
shift
->_list(PROCS_INTERFACE) }
sub
processes { c(
shift
->_listarray(PROCS_INTERFACE)) }
sub
contains_process {
shift
->_contains(+PROCS_INTERFACE() =>
pop
) }
sub
add_thread {
shift
->_appendln(+THREADS_INTERFACE() =>
pop
) }
sub
thread_list {
shift
->_list(THREADS_INTERFACE) }
sub
contains_thread {
shift
->_contains(+THREADS_INTERFACE() =>
pop
) }
sub
populated {
shift
->_list(EVENTS_INTERFACE) }
sub
type {
shift
->_setget(+TYPE_INTERFACE() =>
pop
) }
sub
controllers {
shift
->_setget(+CONTROLLERS_INTERFACE() =>
pop
) }
sub
subtree_control {
shift
->_setget(+SUBTREE_CONTROL_INTERFACE() =>
pop
) }
sub
max_descendants {
shift
->_setget(+MAX_DESCENDANT_INTERFACE() =>
pop
) }
sub
max_depths {
shift
->_setget(+MAX_DEPTH_INTERFACE() =>
pop
) }
sub
stat
{
shift
->_list(+STAT_INTERFACE()) }
*IO
= \
&io
;
*CPU
= \
&cpu
;
*MEMORY
= \
&memory
;
*PID
= \
&pid
;
*RDMA
= \
&rdma
;
1;