diff options
| author | Egor Tensin <Egor.Tensin@gmail.com> | 2023-07-04 18:29:26 +0200 |
|---|---|---|
| committer | Egor Tensin <Egor.Tensin@gmail.com> | 2023-07-04 20:51:17 +0200 |
| commit | a892d9a21fb321b82cb74cba2ec617a4edd7e2c9 (patch) | |
| tree | 1774a176d1fbed474e8bfeea044703461745e86a /src/server.c | |
| parent | tcp_server: always clean up connection descriptors (diff) | |
| download | cimple-a892d9a21fb321b82cb74cba2ec617a4edd7e2c9.tar.gz cimple-a892d9a21fb321b82cb74cba2ec617a4edd7e2c9.zip | |
storage: requeue old runs from storage on startup
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/server.c b/src/server.c index ee605c0..acc3756 100644 --- a/src/server.c +++ b/src/server.c @@ -339,21 +339,26 @@ int server_create(struct server **_server, const struct settings *settings) goto close_signalfd; worker_queue_create(&server->worker_queue); - run_queue_create(&server->run_queue); ret = storage_sqlite_settings_create(&storage_settings, settings->sqlite_path); if (ret < 0) - goto destroy_run_queue; + goto destroy_worker_queue; ret = storage_create(&server->storage, &storage_settings); storage_settings_destroy(&storage_settings); if (ret < 0) + goto destroy_worker_queue; + + run_queue_create(&server->run_queue); + + ret = storage_get_run_queue(&server->storage, &server->run_queue); + if (ret < 0) goto destroy_run_queue; ret = tcp_server_create(&server->tcp_server, settings->port, cmd_dispatcher_handle_conn, server->cmd_dispatcher); if (ret < 0) - goto destroy_storage; + goto destroy_run_queue; ret = tcp_server_add_to_event_loop(server->tcp_server, server->event_loop); if (ret < 0) @@ -371,12 +376,12 @@ int server_create(struct server **_server, const struct settings *settings) destroy_tcp_server: tcp_server_destroy(server->tcp_server); -destroy_storage: - storage_destroy(&server->storage); - destroy_run_queue: run_queue_destroy(&server->run_queue); + storage_destroy(&server->storage); + +destroy_worker_queue: worker_queue_destroy(&server->worker_queue); close_signalfd: |
