From c479ef57baaaa28964fc3ec8d80ff99dffa7d49f Mon Sep 17 00:00:00 2001 From: fujuntang <fujuntang@smartai.com> Date: 星期三, 10 十一月 2021 09:49:29 +0800 Subject: [PATCH] Fix the system hang issue when the app is killed contantly. --- src/socket/shm_mod_socket.cpp | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/socket/shm_mod_socket.cpp b/src/socket/shm_mod_socket.cpp index 7562d56..6058308 100644 --- a/src/socket/shm_mod_socket.cpp +++ b/src/socket/shm_mod_socket.cpp @@ -38,10 +38,6 @@ return shm_socket_force_bind(shm_socket, key); } -int ShmModSocket::bind_proc_id(char *buf, int len) { - return shm_socket_bind_proc_id(shm_socket, buf, len); -} - int ShmModSocket::reg(void *pData, int len, void **buf, int *size, const int timeout_ms, int flag) { int ret; @@ -72,6 +68,10 @@ } else if (flag == PROC_QUE_ATCS) { memcpy(head.action, "atcsque", sizeof(head.action)); + + } else if (flag == PROC_REG_BUF) { + + memcpy(head.action, "bufreg", sizeof(head.action)); } else { @@ -119,7 +119,7 @@ ts.tv_nsec = (timeout_ms - ts.tv_sec * 1000) * 1000 * 1000; - if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { + if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, BUS_TIMEOUT_FLAG); @@ -131,7 +131,7 @@ } else if (timeout_ms == 0) { - if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { + if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, BUS_NOWAIT_FLAG); @@ -143,7 +143,7 @@ } else { - if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { + if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, -1); @@ -169,7 +169,6 @@ int ShmModSocket::sendto(const void *buf, const int size, const int key, const struct timespec *timeout, int flag, int reset, int data_set) { int rv = shm_sendto(shm_socket, buf, size, key, timeout, flag, reset, data_set); if(rv == 0) { - logger->debug("ShmModSocket::sendto: %d sendto %d success.\n", get_key(), key); return 0; } @@ -187,7 +186,6 @@ int rv = shm_recvfrom(shm_socket, buf, size, key, timeout, flag, reset, data_set); if(rv == 0) { - logger->debug("ShmModSocket::recvfrom: %d recvfrom %d success.\n", get_key(), *key); return 0; } @@ -206,7 +204,6 @@ int rv = shm_sendandrecv(shm_socket, send_buf, send_size, send_key, recv_buf, recv_size, timeout, flag); if(rv == 0) { - logger->debug("ShmModSocket::sendandrecv: sendandrecv to %d success.\n", send_key); return 0; } -- Gitblit v1.8.0