-
Add migration guide: local signal loop -> Consolix runner
Описать, как заменить локальный std::signal/run_backend_process_loop() на:
consolix::add<consolix::PosixSignalWakeComponent>();
return consolix::run_for_exit_code();
-
Add backend service example with graceful shutdown
Пример реального daemon/backend loop: worker thread, component shutdown, consolix::stop(code), LoopThrottleComponent, PosixSignalWakeComponent.
-
Document component thread-safety contract
Что можно делать из process(), shutdown(), worker threads; что нельзя делать из signal handler; как пользоваться wake()/LoopWakeService.
-
Consider RunnerOptions / signal strategy API
На будущее: не только компоненты, но и явная настройка runner-а:
ConsoleApplicationRunnerOptions options;
options.posix_signal_wakeup = true;
Не срочно, но как архитектурный roadmap.
-
Add Windows console-control integration test/manual test doc
CI это тяжело тестирует, но стоит описать ручной тест для CTRL_C_EVENT, CTRL_CLOSE_EVENT, shutdown timeout.
-
Add task/event queue component
Следующий логичный слой после LoopWakeService: post(fn), wake(), process queued tasks. Тогда throttled loop станет не просто sleep, а маленьким event loop.
Для проектов, которые используют Consolix
-
Replace local signal handling with Consolix runner
Убрать локальный std::signal/Windows handler, использовать consolix::run_for_exit_code().
-
Replace custom backend loop with Consolix components
Перенести run_backend_process_loop() в BaseLoopComponent/LoopComponent.
-
Move shutdown logic into component lifecycle
Все остановки модулей, WebSocket/server/thread cleanup перенести в on_shutdown(int code).
-
Return real exit code from main
Вместо std::exit и глобальных флагов:
return consolix::run_for_exit_code();
-
Add long-loop wake support
Если есть polling/sleep:
consolix::add<consolix::PosixSignalWakeComponent>();
consolix::add<consolix::LoopThrottleComponent>(std::chrono::milliseconds(1));
-
Add shutdown tests
Минимум: normal stop -> 0, component stop -> custom code, signal stop -> SIGTERM/SIGINT, exception -> non-zero.
Add migration guide: local signal loop -> Consolix runner
Описать, как заменить локальный
std::signal/run_backend_process_loop()на:consolix::add<consolix::PosixSignalWakeComponent>(); return consolix::run_for_exit_code();Add backend service example with graceful shutdown
Пример реального daemon/backend loop: worker thread, component shutdown,
consolix::stop(code),LoopThrottleComponent,PosixSignalWakeComponent.Document component thread-safety contract
Что можно делать из
process(),shutdown(), worker threads; что нельзя делать из signal handler; как пользоватьсяwake()/LoopWakeService.Consider RunnerOptions / signal strategy API
На будущее: не только компоненты, но и явная настройка runner-а:
ConsoleApplicationRunnerOptions options; options.posix_signal_wakeup = true;Не срочно, но как архитектурный roadmap.
Add Windows console-control integration test/manual test doc
CI это тяжело тестирует, но стоит описать ручной тест для
CTRL_C_EVENT,CTRL_CLOSE_EVENT, shutdown timeout.Add task/event queue component
Следующий логичный слой после
LoopWakeService:post(fn),wake(),process queued tasks. Тогда throttled loop станет не просто sleep, а маленьким event loop.Для проектов, которые используют Consolix
Replace local signal handling with Consolix runner
Убрать локальный
std::signal/Windows handler, использоватьconsolix::run_for_exit_code().Replace custom backend loop with Consolix components
Перенести
run_backend_process_loop()вBaseLoopComponent/LoopComponent.Move shutdown logic into component lifecycle
Все остановки модулей, WebSocket/server/thread cleanup перенести в
on_shutdown(int code).Return real exit code from main
Вместо
std::exitи глобальных флагов:return consolix::run_for_exit_code();Add long-loop wake support
Если есть polling/sleep:
consolix::add<consolix::PosixSignalWakeComponent>(); consolix::add<consolix::LoopThrottleComponent>(std::chrono::milliseconds(1));Add shutdown tests
Минимум: normal stop ->
0, component stop -> custom code, signal stop ->SIGTERM/SIGINT, exception -> non-zero.