From e58826640a281fa6a5c5071e974e611d4d993153 Mon Sep 17 00:00:00 2001
From: "dmitriy.gerasimov" <dmitriy.gerasimov@demlabs.net>
Date: Mon, 13 Jun 2022 12:42:49 +0700
Subject: [PATCH] [*] Wrapped cond signal with mutex lock-unlock [*] Fixed send
 ptr

---
 dap-sdk/io/dap_context.c       | 3 ++-
 dap-sdk/io/dap_events_socket.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dap-sdk/io/dap_context.c b/dap-sdk/io/dap_context.c
index bf2755f612..6a01a2dcdf 100644
--- a/dap-sdk/io/dap_context.c
+++ b/dap-sdk/io/dap_context.c
@@ -214,6 +214,7 @@ static void *s_context_thread(void *a_arg)
 {
     dap_context_msg_run_t * l_msg = (dap_context_msg_run_t*) a_arg;
     dap_context_t * l_context = l_msg->context;
+    assert(l_context);
 
     l_context->cpu_id = l_msg->cpu_id;
     if(l_msg->cpu_id!=-1)
@@ -258,8 +259,8 @@ static void *s_context_thread(void *a_arg)
     // Initialization success
     if(l_msg->flags & DAP_CONTEXT_FLAG_WAIT_FOR_STARTED ){
         pthread_mutex_lock(&l_context->started_mutex); // If we're too fast and calling thread haven't switched on cond_wait line
-        pthread_mutex_unlock(&l_context->started_mutex);
         pthread_cond_broadcast(&l_context->started_cond);
+        pthread_mutex_unlock(&l_context->started_mutex);
     }
 
     s_thread_loop(l_context);
diff --git a/dap-sdk/io/dap_events_socket.c b/dap-sdk/io/dap_events_socket.c
index d5fa95d547..732413c7ec 100644
--- a/dap-sdk/io/dap_events_socket.c
+++ b/dap-sdk/io/dap_events_socket.c
@@ -884,7 +884,7 @@ int dap_events_socket_queue_ptr_send( dap_events_socket_t *a_es, void *a_arg)
     if (l_errno == EINVAL || l_errno == EINTR || l_errno == ETIMEDOUT)
         l_errno = EAGAIN;
     if (l_ret == 0)
-        l_ret = 0;
+        l_ret = sizeof(a_arg);
     else if (l_ret > 0)
         l_ret = -l_ret;
 
-- 
GitLab