return NULL;
}
-/*
- Immediately kills all processes in this cgroup
-*/
-static int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup) {
- DEBUG(cgroup->ctx, "Killing all processes in %s\n",
- pakfire_cgroup_path(cgroup));
-
- return pakfire_cgroup_write(cgroup, "cgroup.kill", "1");
-}
-
int pakfire_cgroup_child(struct pakfire_cgroup** child,
struct pakfire_cgroup* cgroup, const char* path, int flags) {
return pakfire_cgroup_open(child, cgroup->ctx, cgroup, path, flags);
DEBUG(cgroup->ctx, "Destroying cgroup %s\n", pakfire_cgroup_path(cgroup));
- // Kill everything in this group
- r = pakfire_cgroup_killall(cgroup);
- if (r)
- return r;
-
// Delete the directory
r = unlinkat(cgroup->parent->fd, cgroup->name, AT_REMOVEDIR);
if (r) {
return cgroup->fd;
}
+/*
+ Immediately kills all processes in this cgroup
+*/
+int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup) {
+ DEBUG(cgroup->ctx, "Killing all processes in %s\n",
+ pakfire_cgroup_path(cgroup));
+
+ return pakfire_cgroup_write(cgroup, "cgroup.kill", "1");
+}
+
// Accounting
int pakfire_cgroup_enable_accounting(struct pakfire_cgroup* cgroup) {