From bbb3981d793b64b669dec4072ed21654a4ad35d3 Mon Sep 17 00:00:00 2001
From: Aleksei Voronin <aleksei.voronin@demlabs.net>
Date: Mon, 17 Aug 2020 17:28:13 +0000
Subject: [PATCH] Bugs 4325 clean

---
 dap-sdk/net/core/dap_events.c        | 16 +++++++++-------
 dap-sdk/net/core/dap_events_socket.c |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/dap-sdk/net/core/dap_events.c b/dap-sdk/net/core/dap_events.c
index 45a366318c..0f3d96c544 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 be385111db..1510d671b8 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 )
-- 
GitLab