From f2651e8847163d0326bd2dc5adc781dc7776d16d Mon Sep 17 00:00:00 2001 From: Sergei Rashitov <sergei.rashitov@demlabs.net> Date: Tue, 26 May 2020 15:10:03 +0700 Subject: [PATCH] [+] Add function that stops events --- dap-sdk/net/core/dap_events.c | 9 ++++++++- dap-sdk/net/core/include/dap_events.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dap-sdk/net/core/dap_events.c b/dap-sdk/net/core/dap_events.c index 5bc14c6054..6163aec241 100644 --- a/dap-sdk/net/core/dap_events.c +++ b/dap-sdk/net/core/dap_events.c @@ -83,6 +83,7 @@ static uint32_t s_threads_count = 1; static size_t s_connection_timeout = 6000; static struct epoll_event *g_epoll_events = NULL; +static volatile bool bEventsAreActive = true; bool s_workers_init = false; dap_worker_t *s_workers = NULL; @@ -291,13 +292,14 @@ static void *thread_worker_function(void *arg) size_t total_sent; int bytes_sent = 0; - while(1) { + while(bEventsAreActive) { int selected_sockets = epoll_wait(w->epoll_fd, events, DAP_MAX_EPOLL_EVENTS, 1000); if(selected_sockets == -1) { if( errno == EINTR) continue; + log_it(L_ERROR, "Worker thread %d got errno: %d", w->number_thread, errno); break; } @@ -560,6 +562,11 @@ int dap_events_start( dap_events_t *a_events ) return 0; } +void dap_events_stop() +{ + bEventsAreActive = false; +} + /** * @brief dap_events_wait * @param sh diff --git a/dap-sdk/net/core/include/dap_events.h b/dap-sdk/net/core/include/dap_events.h index 8f6f407d0b..149784bdca 100644 --- a/dap-sdk/net/core/include/dap_events.h +++ b/dap-sdk/net/core/include/dap_events.h @@ -80,6 +80,7 @@ dap_events_t* dap_events_new( ); void dap_events_delete( dap_events_t * sh ); int32_t dap_events_start( dap_events_t *sh ); +void dap_events_stop(); int32_t dap_events_wait( dap_events_t *sh ); uint32_t dap_worker_get_index_min( ); -- GitLab