diff --git a/dap-sdk/net/core/dap_events.c b/dap-sdk/net/core/dap_events.c index 45a366318c4e3013571da0bffafdf31003485870..0f3d96c544f6c1086c02fecd70782fd4f9b15486 100644 --- a/dap-sdk/net/core/dap_events.c +++ b/dap-sdk/net/core/dap_events.c @@ -418,14 +418,16 @@ static void *thread_worker_function(void *arg) //log_it(L_DEBUG, "Output: %u from %u bytes are sent ", total_sent,sa_cur->buf_out_size); } //log_it(L_DEBUG,"Output: sent %u bytes",total_sent); - pthread_mutex_lock(&cur->write_hold); - cur->buf_out_size -= total_sent; - if (cur->buf_out_size) { - memmove(cur->buf_out, &cur->buf_out[total_sent], cur->buf_out_size); - } else { - cur->flags &= ~DAP_SOCK_READY_TO_WRITE; + if (total_sent) { + pthread_mutex_lock(&cur->write_hold); + cur->buf_out_size -= total_sent; + if (cur->buf_out_size) { + memmove(cur->buf_out, &cur->buf_out[total_sent], cur->buf_out_size); + } else { + cur->flags &= ~DAP_SOCK_READY_TO_WRITE; + } + pthread_mutex_unlock(&cur->write_hold); } - pthread_mutex_unlock(&cur->write_hold); } pthread_mutex_lock(&w->locker_on_count); diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c index be385111db3b9fb772d7b27a7458725274ccd922..1510d671b88134231a8e7f1c193380b9677b8a64 100644 --- a/dap-sdk/net/core/dap_events_socket.c +++ b/dap-sdk/net/core/dap_events_socket.c @@ -118,7 +118,7 @@ void dap_events_socket_create_after( dap_events_socket_t *a_es ) HASH_ADD_INT( a_es->events->sockets, socket, a_es ); pthread_rwlock_unlock( &a_es->events->sockets_rwlock ); - a_es->ev.events = EPOLLIN | EPOLLERR | EPOLLOUT; + a_es->ev.events = EPOLLIN | EPOLLERR; a_es->ev.data.ptr = a_es; if ( epoll_ctl( a_es->dap_worker->epoll_fd, EPOLL_CTL_ADD, a_es->socket, &a_es->ev ) == 1 )