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 47 48 49 50 51 52 53 54
|
package Mojo::IOLoop::ReadWriteProcess::CGroup::v1::Freezer;
use Mojo::Base -base;
use constant {
STATE_INTERFACE => 'freezer.state',
SELF_FREEZING_INTERFACE => 'freezer.self_freezing',
PARENT_FREEZING_INTERFACE => 'freezer.parent_freezing',
};
has cgroup => sub { Mojo::IOLoop::ReadWriteProcess::CGroup::v1->new };
sub state { shift->cgroup->_setget(STATE_INTERFACE, @_) }
sub self_freezing { shift->cgroup->_list(SELF_FREEZING_INTERFACE) }
sub parent_freezing { shift->cgroup->_list(PARENT_FREEZING_INTERFACE) }
1;
=encoding utf-8
=head1 NAME
Mojo::IOLoop::ReadWriteProcess::CGroup::v1::Freezer - CGroups v1 Freezer Controller.
=head1 SYNOPSIS
use Mojo::IOLoop::ReadWriteProcess::CGroup::v1;
my $cgroup = Mojo::IOLoop::ReadWriteProcess::CGroup::v1->new( name => "test" );
$cgroup->freezer->state('FROZEN');
=head1 DESCRIPTION
This module uses features that are only available on Linux,
and requires cgroups and capability for unshare syscalls to achieve pid isolation.
=head1 METHODS
L<Mojo::IOLoop::ReadWriteProcess::CGroup::v1::Freezer> inherits all methods from L<Mojo::Base> and implements
the following new ones.
=head1 LICENSE
Copyright (C) Ettore Di Giacinto.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 AUTHOR
Ettore Di Giacinto E<lt>edigiacinto@suse.comE<gt>
=cut
|