From dfaac069a809b1f15c6a87108c3b675a25b2295a Mon Sep 17 00:00:00 2001 From: EntireTwix Date: Sat, 26 Jun 2021 19:20:12 -0700 Subject: [PATCH] :fire: removed thread argument in place of detecting CPU cores --- main.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index 1482c98..4256f02 100644 --- a/main.cpp +++ b/main.cpp @@ -5,11 +5,15 @@ #include #include "bank_api.h" +//sig handling headers #include #include #include #include +//threads of cpu +#include + using namespace std::chrono; using namespace drogon; @@ -17,20 +21,25 @@ static Bank bank; void SaveSig(int s) { - bank.Save(); std::cout << "\nSaving on close...\n"; + bank.Save(); exit(1); } int main(int argc, char **argv) { + std::cout << "\nSSE3 : " << (__builtin_cpu_supports("sse3") ? "enabled" : "disabled") + << "\nCores : " << get_nprocs() / 2 + << "\nThreads : " << get_nprocs() + 1 + << std::endl; //flushing before EventLoop + static_assert(bool(max_log_size) == bool(pre_log_size), "You must either utilize both or neither logging variables.\n"); static_assert(max_log_size >= pre_log_size, "The maximum log size must be larger than or equal to the amount preallocated.\n"); static_assert(!max_log_size || !(max_log_size % pre_log_size), "The maximum log size must be divisible by the preallocation size.\n"); - if (argc != 4) + if (argc != 3) { - std::cerr << "Usage: sudo ./bank \n"; + std::cerr << "Usage: sudo ./bank \n"; return 0; } if (geteuid() != 0) @@ -73,12 +82,18 @@ int main(int argc, char **argv) //endpoints auto APIv1 = std::make_shared(bank); //v1 + auto user_filter = std::make_shared(bank); app().registerPostHandlingAdvice( [](const drogon::HttpRequestPtr &req, const drogon::HttpResponsePtr &resp) { resp->addHeader("Access-Control-Allow-Origin", "*"); //CORS }); - app().loadConfigFile(config_location).registerController(APIv1).setThreadNum(std::stoul(std::string(argv[3]))).run(); + app() + .loadConfigFile(config_location) + .registerFilter(user_filter) + .registerController(APIv1) + .setThreadNum(get_nprocs()) + .run(); return 0; }