Skip to content
Snippets Groups Projects

concurrent CTL

Merged Libor Peltan requested to merge concurrent_ctl into master
1 unresolved thread
Viewing commit c6145f3b
Show latest version
1 file
+ 14
14
Preferences
Compare changes
+ 14
14
@@ -314,16 +314,6 @@ 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)
{
for (size_t i = 0; i < n_ctxs; i++) {
concurrent_ctl_ctx_t *cctx = &concurrent_ctxs[i];
pthread_mutex_init(&cctx->mutex, NULL);
pthread_cond_init(&cctx->cond, NULL);
cctx->server = server;
}
}
static int cleanup_ctxs2(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs)
{
int ret = KNOT_EOK;
@@ -359,8 +349,6 @@ static void cleanup_ctxs(concurrent_ctl_ctx_t *concurrent_ctxs, size_t n_ctxs)
assert(cctx->state == CONCURRENT_FINISHED);
knot_ctl_free(cctx->ctl);
pthread_mutex_destroy(&concurrent_ctxs[i].mutex);
pthread_cond_destroy(&concurrent_ctxs[i].cond);
}
}
@@ -403,7 +391,17 @@ static void *ctl_process_thread(void *arg)
static void event_loop(server_t *server, const char *socket, bool daemonize,
unsigned long pid)
{
concurrent_ctl_ctx_t concurrent_ctxs[MAX_CTL_CONCURRENT] = { 0 };
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)",
@@ -447,7 +445,9 @@ static void event_loop(server_t *server, const char *socket, bool daemonize,
enable_signals();
init_ctxs(concurrent_ctxs, MAX_CTL_CONCURRENT, server);
for (size_t i = 0; i < MAX_CTL_CONCURRENT; i++) {
concurrent_ctxs[i].server = server;
}
bool main_thread_exclusive = false;
/* Notify systemd about successful start. */