summaryrefslogtreecommitdiff
path: root/vendor/github.com/containerd/cgroups/cgroup.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-09-05 18:30:30 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-09-06 15:19:25 +0000
commitbbbbfa582b923746d752e336edcf21135c340fcf (patch)
tree14372fc9a73d3da71902d49e249048164d25d516 /vendor/github.com/containerd/cgroups/cgroup.go
parent2e6243b18539175b5ff029a924c4d83834f83d2b (diff)
downloadpodman-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.go46
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()