From 7e8f1e30b7e365cf77bfa7716c2a32bd5fe0832e Mon Sep 17 00:00:00 2001 From: Tyler Perkins Date: Sat, 30 Apr 2022 14:41:17 -0400 Subject: [PATCH] Add thread cli option --- src/main.cpp | 2 +- src/opt/parseopt.cpp | 7 +++++++ src/opt/parseopt.hpp | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 5d814fd..61d86fd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,7 +28,7 @@ int main(int argc, char** argv){ app.port(flags->port) .server_name(flags->name) - .multithreaded(); + .concurrency(flags->threads); delete flags; diff --git a/src/opt/parseopt.cpp b/src/opt/parseopt.cpp index 16870ef..8c8abdf 100644 --- a/src/opt/parseopt.cpp +++ b/src/opt/parseopt.cpp @@ -13,6 +13,7 @@ void help(char* progName){ std::cout << " [-n NAME] Server name (Default \"proc-api\")\n"; std::cout << " [-a PATH] Path to file containing authorization tokens\n"; std::cout << " If the -a flag is not passed, no authorization is used\n"; + std::cout << " [-t THREADS] Number of threads to use. By default, uses 2 threads\n"; std::cout << " [-h] Display this help message\n\n"; exit(1); } @@ -23,6 +24,7 @@ option_flags* parse_options(int argc, char** argv){ option_flags* ret = new option_flags; ret->port = 5000; + ret->threads = 2; ret->name = "proc-api"; ret->auth_path = ""; @@ -37,6 +39,11 @@ option_flags* parse_options(int argc, char** argv){ case 'a': ret->auth_path = std::string(optarg); break; + case 't': + ret->threads = atoi(optarg); + if(ret->threads == 0) + ret->threads = 1; + break; case '?': std::cerr << "Unkown option: " << (char)optopt << "\n"; case 'h': diff --git a/src/opt/parseopt.hpp b/src/opt/parseopt.hpp index 53beb6f..2a3d5cf 100644 --- a/src/opt/parseopt.hpp +++ b/src/opt/parseopt.hpp @@ -12,10 +12,11 @@ /////////////////////////////////////// // cli options -constexpr char optarg_string[] = "n:p:a:h"; +constexpr char optarg_string[] = "n:p:a:t:h"; struct option_flags { uint16_t port; + uint16_t threads; std::string name; std::string auth_path; };