diff options
author | baude <bbaude@redhat.com> | 2018-09-05 18:30:30 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-09-06 15:19:25 +0000 |
commit | bbbbfa582b923746d752e336edcf21135c340fcf (patch) | |
tree | 14372fc9a73d3da71902d49e249048164d25d516 /vendor/github.com/containerd/cgroups/cgroup.go | |
parent | 2e6243b18539175b5ff029a924c4d83834f83d2b (diff) | |
download | podman-bbbbfa582b923746d752e336edcf21135c340fcf.tar.gz podman-bbbbfa582b923746d752e336edcf21135c340fcf.tar.bz2 podman-bbbbfa582b923746d752e336edcf21135c340fcf.zip |
vendor containerd/cgroups
We need to vendor in the latest containerd/cgroups for a fix related to
slice delegation and systemd <= 239. The opencontainer/runtime-spec is
brought along for the ride.
Signed-off-by: baude <bbaude@redhat.com>
Closes: #1414
Approved by: mheon
Diffstat (limited to 'vendor/github.com/containerd/cgroups/cgroup.go')
-rw-r--r-- | vendor/github.com/containerd/cgroups/cgroup.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/github.com/containerd/cgroups/cgroup.go b/vendor/github.com/containerd/cgroups/cgroup.go index d1c36bde3..7959feb49 100644 --- a/vendor/github.com/containerd/cgroups/cgroup.go +++ b/vendor/github.com/containerd/cgroups/cgroup.go @@ -1,3 +1,19 @@ +/* + Copyright The containerd Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + package cgroups import ( @@ -121,6 +137,36 @@ func (c *cgroup) add(process Process) error { return nil } +// AddTask moves the provided tasks (threads) into the new cgroup +func (c *cgroup) AddTask(process Process) error { + if process.Pid <= 0 { + return ErrInvalidPid + } + c.mu.Lock() + defer c.mu.Unlock() + if c.err != nil { + return c.err + } + return c.addTask(process) +} + +func (c *cgroup) addTask(process Process) error { + for _, s := range pathers(c.subsystems) { + p, err := c.path(s.Name()) + if err != nil { + return err + } + if err := ioutil.WriteFile( + filepath.Join(s.Path(p), cgroupTasks), + []byte(strconv.Itoa(process.Pid)), + defaultFilePerm, + ); err != nil { + return err + } + } + return nil +} + // Delete will remove the control group from each of the subsystems registered func (c *cgroup) Delete() error { c.mu.Lock() |