From b3c5fd38dca46423fc273c11a63f3543a94ec9ce Mon Sep 17 00:00:00 2001 From: fanasina Date: Sat, 11 Oct 2025 08:20:07 +0200 Subject: [PATCH] y_socket: debug go_on workers before handling buf --- y_socket_t/src/y_socket_t/y_socket_t.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/y_socket_t/src/y_socket_t/y_socket_t.c b/y_socket_t/src/y_socket_t/y_socket_t.c index fa9a017..19a4f71 100644 --- a/y_socket_t/src/y_socket_t/y_socket_t.c +++ b/y_socket_t/src/y_socket_t/y_socket_t.c @@ -719,7 +719,8 @@ void *y_socket_poll_fds(void *arg){ memset(&(node.addr), 0, sizeof(struct sockaddr_storage)); size_t len_sockaddr_storage = sizeof(struct sockaddr_storage); node.addr_len = len_sockaddr_storage; // sizeof(struct sockaddr_storage); - + int w_go_on=1; + for(;check_y_socket_go_on(argSock);){ printf("poll: wait events\n"); status = poll(fds, nbIpVersion + 1, -1); @@ -736,12 +737,10 @@ void *y_socket_poll_fds(void *arg){ if(m_str == NULL) m_str=create_var_list_y_ptr_STRING(); memset(buf, 0, BUF_SIZE+1); - pthread_mutex_lock(argSock->mut_go_on); - int w_go_on = argSock->go_on; - pthread_mutex_unlock(argSock->mut_go_on); + #if 1 - while(w_go_on && ((nread = recvfrom(fds[af].fd, buf, BUF_SIZE, 0, - (struct sockaddr *)&(node.addr), &(node.addr_len))) == BUF_SIZE)){ + while((nread = recvfrom(fds[af].fd, buf, BUF_SIZE, 0, + (struct sockaddr *)&(node.addr), &(node.addr_len))) == BUF_SIZE){ if(buf[nread-1]=='\n') buf[nread-1]='\0'; @@ -758,7 +757,7 @@ void *y_socket_poll_fds(void *arg){ //printf("debug: out nread: %ld vs BUF_SIZE :%d \n",nread, BUF_SIZE); if(nread == -1) fprintf(stderr,"error recvfrom\n"); - else if(w_go_on && (nread >= 0 && nread < BUF_SIZE)){ + else if(nread >= 0 && nread < BUF_SIZE){ if(nread && buf[nread-1]=='\n' ) buf[nread-1]='\0'; buf[nread]='\0'; @@ -799,7 +798,10 @@ void *y_socket_poll_fds(void *arg){ /// } - if(m_str){ + pthread_mutex_lock(argSock->mut_go_on); + w_go_on = argSock->go_on; + pthread_mutex_unlock(argSock->mut_go_on); + if(w_go_on && m_str){ printf("debug: call handle_buf_socket_rec\n"); handle_buf_socket_rec(m_ok_head_l_t,m_head_l_t,m_str, node, workers, argx, list_arg, arg);