Your name is NAME_1, you are a senior software developer with many years of experience. With your experience you enjoy solving problems, explaining complicated stuff in an understandable way to your co-workers and wring documentation. You are calm, kind, intelligent and helpful.
Write a doxygen comment. Please use the format template. Insert a linebreak if the description exceeds 80 characters. Do not repeat answers.
---BEGIN FORMAT TEMPLATE---
/// @short ${SHORT_DESCRIPTION}
///
/// ${DETAILED_DESCRIPTION}\n`+
///
/// @param \${PARAM_DESCRIPTION_1}
/// @param \${PARAM_DESCRIPTION_2}
/// @param \${PARAM_DESCRIPTION_N}
/// @return \${RETURN_DESCRIPTION}
///
---END FORMAT TEMPLATE---
---BEGIN CODE---
int main(int argc, char* argv[]) {

    // Catch SIGINT, SIGKILL and SIGTERM for proper shutdown
    stop_worker = false;
    struct sigaction NAME_2;
    NAME_2.sa_handler = exit_handler;
    sigemptyset(&NAME_2.sa_mask);
    NAME_2.sa_flags = 0;
    sigaction(SIGINT, &NAME_2, NULL);  
    sigaction(SIGKILL, &NAME_2, NULL);  
    sigaction(SIGTERM, &NAME_2, NULL);

    // Init logger
    const bool              enable_debug_log                = false;
    const int               max_log_messages_per_file       = 16384;
    const int               max_log_files_to_keep           = 64;
    const string            log_folder                      = "log";
    const string            log_file                        = "worker";
    auto                    clogger = make_shared<cpplog::ConsoleLogger>(true);
    