Skip to content
Snippets Groups Projects

concurrent CTL

Merged Libor Peltan requested to merge concurrent_ctl into master
1 unresolved thread
Compare and Show latest version
1 file
+ 15
14
Compare changes
  • Side-by-side
  • Inline
+ 15
14
@@ -314,6 +314,19 @@ static concurrent_ctl_ctx_t *find_free_ctx(concurrent_ctl_ctx_t *concurrent_ctxs
return res;
}
static void init_ctxs(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs, server_t *server)
{
const concurrent_ctl_ctx_t initial = {
.mutex = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
.server = server,
};
for (size_t i = 0; i < n_ctxs; i++) {
concurrent_ctxs[i] = initial;
}
}
static int cleanup_ctxs2(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs)
{
int ret = KNOT_EOK;
@@ -391,17 +404,6 @@ static void *ctl_process_thread(void *arg)
static void event_loop(server_t *server, const char *socket, bool daemonize,
unsigned long pid)
{
static concurrent_ctl_ctx_t concurrent_ctxs[MAX_CTL_CONCURRENT] = {
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
{.mutex = PTHREAD_MUTEX_INITIALIZER, .cond = PTHREAD_COND_INITIALIZER},
};
knot_ctl_t *ctl = knot_ctl_alloc();
if (ctl == NULL) {
log_fatal("control, failed to initialize (%s)",
@@ -445,9 +447,8 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
enable_signals();
for (size_t i = 0; i < MAX_CTL_CONCURRENT; i++) {
concurrent_ctxs[i].server = server;
}
concurrent_ctl_ctx_t concurrent_ctxs[MAX_CTL_CONCURRENT];
init_ctxs(concurrent_ctxs, MAX_CTL_CONCURRENT, server);
bool main_thread_exclusive = false;
/* Notify systemd about successful start. */
Loading