From 0dbd5109a8da5338ea3867f015e58e0641a4a4bd Mon Sep 17 00:00:00 2001 From: MiaoHN <582418227@qq.com> Date: Wed, 15 Feb 2023 21:17:18 +0800 Subject: [PATCH] feat: finish video --- CMakeLists.txt | 3 ++- example/http_server.cpp | 5 ++++- gudov/fiber.cpp | 2 +- gudov/hook.cpp | 10 ++++++++-- gudov/iomanager.cpp | 1 + test/CMakeLists.txt | 8 +++----- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f88ff04..8bf5843 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(gudov) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -rdynamic -O0 -ggdb -std=c++11 -Wall -Wno-deprecated -Werror -Wno-unused-function -Wno-builtin-macro-redefined") +set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -rdynamic -O3 -ggdb -std=c++11 -Wall -Wno-deprecated -Werror -Wno-unused-function -Wno-builtin-macro-redefined") include(cmake/utils.cmake) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) @@ -20,5 +20,6 @@ link_directories(${PROJECT_SOURCE_DIR}/lib) include_directories(.) add_subdirectory(gudov) +enable_testing() add_subdirectory(test) add_subdirectory(example) diff --git a/example/http_server.cpp b/example/http_server.cpp index 836a23c..a99b890 100644 --- a/example/http_server.cpp +++ b/example/http_server.cpp @@ -4,6 +4,8 @@ static gudov::Logger::ptr g_logger = GUDOV_LOG_ROOT(); +gudov ::IOManager::ptr worker; + void run() { g_logger->setLevel(gudov::LogLevel::INFO); gudov::http::HttpServer::ptr server(new gudov::http::HttpServer(true)); @@ -49,7 +51,8 @@ void run() { } int main(int argc, char** argv) { - gudov::IOManager iom(4); + gudov::IOManager iom(1, true, "main"); + worker.reset(new gudov::IOManager(3, false, "worker")); iom.schedule(run); return 0; } \ No newline at end of file diff --git a/gudov/fiber.cpp b/gudov/fiber.cpp index 94374a4..3726c53 100644 --- a/gudov/fiber.cpp +++ b/gudov/fiber.cpp @@ -204,7 +204,7 @@ void Fiber::YieldToReady() { void Fiber::YieldToHold() { Fiber::ptr cur = GetThis(); - cur->_state = HOLD; + // cur->_state = HOLD; cur->swapOut(); } diff --git a/gudov/hook.cpp b/gudov/hook.cpp index 6deedec..d5e2de3 100644 --- a/gudov/hook.cpp +++ b/gudov/hook.cpp @@ -458,7 +458,10 @@ int fcntl(int fd, int cmd, ...) { case F_SETSIG: case F_SETLEASE: case F_NOTIFY: - case F_SETPIPE_SZ: { +#ifdef F_SETPIPE_SZ + case F_SETPIPE_SZ: +#endif + { int arg = va_arg(va, int); va_end(va); return fcntlF(fd, cmd, arg); @@ -467,7 +470,10 @@ int fcntl(int fd, int cmd, ...) { case F_GETOWN: case F_GETSIG: case F_GETLEASE: - case F_GETPIPE_SZ: { +#ifdef F_GETPIPE_SZ + case F_GETPIPE_SZ: +#endif + { va_end(va); return fcntlF(fd, cmd); } diff --git a/gudov/iomanager.cpp b/gudov/iomanager.cpp index 5bb7ece..8a0b7a5 100644 --- a/gudov/iomanager.cpp +++ b/gudov/iomanager.cpp @@ -300,6 +300,7 @@ bool IOManager::stopping() { } void IOManager::idle() { + GUDOV_LOG_DEBUG(g_logger) << "idle"; static const uint64_t maxEvents = 64; epoll_event* events = new epoll_event[maxEvents](); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6a8156d..8d490ed 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,5 +1,3 @@ -enable_testing() - add_executable(test_log test_log.cpp) add_dependencies(test_log gudov) force_redefine_file_macro_for_sources(test_log) @@ -40,7 +38,7 @@ add_executable(test_iomanager test_iomanager.cpp) add_dependencies(test_iomanager gudov) force_redefine_file_macro_for_sources(test_iomanager) target_link_libraries(test_iomanager gudov) -add_test(NAME test_iomanager COMMAND test_iomanager) +# add_test(NAME test_iomanager COMMAND test_iomanager) add_executable(test_hook test_hook.cpp) add_dependencies(test_hook gudov) @@ -58,7 +56,7 @@ add_executable(test_socket test_socket.cpp) add_dependencies(test_socket gudov) force_redefine_file_macro_for_sources(test_socket) target_link_libraries(test_socket gudov) -add_test(NAME test_socket COMMAND test_socket) +# add_test(NAME test_socket COMMAND test_socket) add_executable(test_bytearray test_bytearray.cpp) add_dependencies(test_bytearray gudov) @@ -82,7 +80,7 @@ add_executable(test_tcp_server test_tcp_server.cpp) add_dependencies(test_tcp_server gudov) force_redefine_file_macro_for_sources(test_tcp_server) target_link_libraries(test_tcp_server gudov) -add_test(NAME test_tcp_server COMMAND test_tcp_server) +# add_test(NAME test_tcp_server COMMAND test_tcp_server) add_executable(test_http_connection test_http_connection.cpp) add_dependencies(test_http_connection gudov)