]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
d093b62c LP |
2 | #pragma once |
3 | ||
4 | #include "sd-bus.h" | |
5 | #include "sd-event.h" | |
6 | ||
7 | typedef struct Manager Manager; | |
8 | ||
9 | #include "hashmap.h" | |
10 | #include "varlink.h" | |
11 | #include "ratelimit.h" | |
12 | ||
13 | #define USERDB_WORKERS_MIN 3 | |
14 | #define USERDB_WORKERS_MAX 4096 | |
15 | ||
16 | struct Manager { | |
17 | sd_event *event; | |
18 | ||
19 | Set *workers_fixed; /* Workers 0…USERDB_WORKERS_MIN */ | |
20 | Set *workers_dynamic; /* Workers USERD_WORKERS_MIN+1…USERDB_WORKERS_MAX */ | |
21 | ||
22 | sd_event_source *sigusr2_event_source; | |
23 | sd_event_source *sigchld_event_source; | |
24 | ||
25 | int listen_fd; | |
26 | ||
27 | RateLimit worker_ratelimit; | |
28 | }; | |
29 | ||
30 | int manager_new(Manager **ret); | |
31 | Manager* manager_free(Manager *m); | |
32 | DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); | |
33 | ||
34 | int manager_startup(Manager *m); |