/* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once #include "sd-bus.h" #include "sd-event.h" typedef struct Manager Manager; #include "hashmap.h" #include "varlink.h" #include "ratelimit.h" #define USERDB_WORKERS_MIN 3 #define USERDB_WORKERS_MAX 4096 struct Manager { sd_event *event; Set *workers_fixed; /* Workers 0…USERDB_WORKERS_MIN */ Set *workers_dynamic; /* Workers USERD_WORKERS_MIN+1…USERDB_WORKERS_MAX */ sd_event_source *sigusr2_event_source; sd_event_source *sigchld_event_source; int listen_fd; RateLimit worker_ratelimit; }; int manager_new(Manager **ret); Manager* manager_free(Manager *m); DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); int manager_startup(Manager *m);