diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-07-02 01:46:30 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-07-02 01:48:55 +0200 |
commit | fb6becb4436ae4078337011b2017ce294e7361cf (patch) | |
tree | 5e80cea85b91f039563907c830cd1d38f19c375c /src/login/logind-session.h | |
parent | 358712f3de33789b2d1293825f1add2c6f4b8e66 (diff) |
logind: port over to use scopes+slices for all cgroup stuff
In order to prepare things for the single-writer cgroup scheme, let's
make logind use systemd's own primitives for cgroup management.
Every login user now gets his own private slice unit, in which his sessions
live in a scope unit each. Also, add user@$UID.service to the same
slice, and implicitly start it on first login.
Diffstat (limited to 'src/login/logind-session.h')
-rw-r--r-- | src/login/logind-session.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/login/logind-session.h b/src/login/logind-session.h index 60597c2362..e2a46d5907 100644 --- a/src/login/logind-session.h +++ b/src/login/logind-session.h @@ -31,9 +31,10 @@ typedef enum KillWho KillWho; #include "logind-user.h" typedef enum SessionState { + SESSION_OPENING, /* Session scope is being created */ SESSION_ONLINE, /* Logged in */ SESSION_ACTIVE, /* Logged in and in the fg */ - SESSION_CLOSING, /* Logged out, but processes still remain */ + SESSION_CLOSING, /* Logged out, but scope is still there */ _SESSION_STATE_MAX, _SESSION_STATE_INVALID = -1 } SessionState; @@ -81,9 +82,10 @@ struct Session { bool remote; char *remote_user; char *remote_host; - char *service; - char *slice; + + char *scope; + char *scope_job; int vtnr; Seat *seat; @@ -94,16 +96,14 @@ struct Session { int fifo_fd; char *fifo_path; - char *cgroup_path; - char **controllers, **reset_controllers; - bool idle_hint; dual_timestamp idle_hint_timestamp; - bool kill_processes; bool in_gc_queue:1; bool started:1; + DBusMessage *create_message; + LIST_FIELDS(Session, sessions_by_user); LIST_FIELDS(Session, sessions_by_seat); @@ -138,6 +138,8 @@ int session_send_changed(Session *s, const char *properties); int session_send_lock(Session *s, bool lock); int session_send_lock_all(Manager *m, bool lock); +int session_send_create_reply(Session *s, DBusError *error); + const char* session_state_to_string(SessionState t) _const_; SessionState session_state_from_string(const char *s) _pure_; |