From f7a18ec4494b9c5c9ef3fd440bbf68ffc6425e18 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 08 十二月 2022 15:40:56 +0800 Subject: [PATCH] 智慧驾培首次提交 --- lib/src/main/cpp/common/net.cpp | 26 ++++++-------------------- 1 files changed, 6 insertions(+), 20 deletions(-) diff --git a/lib/src/main/cpp/common/net.cpp b/lib/src/main/cpp/common/net.cpp index 4923c65..2f6fed0 100644 --- a/lib/src/main/cpp/common/net.cpp +++ b/lib/src/main/cpp/common/net.cpp @@ -12,7 +12,7 @@ #include <sys/select.h> #include <arpa/inet.h> #include <regex> -#include <pthread.h> +#include <thread> #include <semaphore.h> #include <string> @@ -70,12 +70,7 @@ m_sIp = ip; m_nPort = port; - pthread_t platform_pid; - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//detached - pthread_create(&platform_pid, &attr, TcpConnectThread, this); - + std::thread(TcpConnectThread, this).detach(); return true; } @@ -317,7 +312,7 @@ return( -1 ); } -void *CTcpPort::TcpConnectThread(void *p) +void CTcpPort::TcpConnectThread(void *p) { CTcpPort *pCTcpPort = (CTcpPort *)p; @@ -325,7 +320,7 @@ if (pCTcpPort->is_domain_name(pCTcpPort->m_sIp.c_str())) { if (pCTcpPort->GetHostIP(pCTcpPort->m_sIp.c_str(), net_addr) != 0) { - goto CONNECT_END; + return; } } else { strcpy(net_addr, pCTcpPort->m_sIp.c_str()); @@ -338,22 +333,15 @@ pCTcpPort->event_func(0, pCTcpPort, pCTcpPort->event_func_context); } - pthread_t platform_pid; - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//detached - pthread_create(&platform_pid, &attr, TcpListenThread, p); + std::thread(TcpListenThread, p).detach(); } else { if (pCTcpPort->event_func != NULL) { pCTcpPort->event_func(-1, pCTcpPort, pCTcpPort->event_func_context); } } - -CONNECT_END: - pthread_exit(NULL); } -void *CTcpPort::TcpListenThread(void *p) +void CTcpPort::TcpListenThread(void *p) { int fds_ret; struct timeval tv; @@ -403,8 +391,6 @@ if (pCTcpPort->event_func) { pCTcpPort->event_func(-1, pCTcpPort, pCTcpPort->event_func_context); } - - pthread_exit(NULL); } void CTcpPort::set_event_callback(void (*callback)(int, void *, void *), void *context) -- Gitblit v1.8.0