From cf1ff3ad98cfd9a301107e4f55f04cc0edc161e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Fri, 2 Aug 2019 12:03:32 +0500 Subject: [PATCH] updated dap_stream_delete() --- stream/dap_stream.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/stream/dap_stream.c b/stream/dap_stream.c index b58f856..0017e66 100644 --- a/stream/dap_stream.c +++ b/stream/dap_stream.c @@ -373,6 +373,10 @@ void dap_stream_delete( dap_stream_t *a_stream ) dap_stream_session_close(a_stream->session->id); } + pthread_mutex_lock(&mutex_keepalive_list); + DL_DELETE(stream_keepalive_list, a_stream); + stream_dap_delete(a_stream->conn, NULL); + pthread_mutex_unlock(&mutex_keepalive_list); free(a_stream); } @@ -470,11 +474,9 @@ void start_keepalive( dap_stream_t *sid ) { // sid->keepalive_watcher.data = sid; // ev_timer_init (&sid->keepalive_watcher, keepalive_cb, STREAM_KEEPALIVE_TIMEOUT, STREAM_KEEPALIVE_TIMEOUT); // ev_timer_start (keepalive_loop, &sid->keepalive_watcher); - pthread_mutex_lock( &mutex_keepalive_list ); DL_APPEND( stream_keepalive_list, sid ); pthread_mutex_unlock( &mutex_keepalive_list ); - } /** @@ -712,6 +714,8 @@ void stream_dap_data_write(dap_client_remote_t* a_client , void * arg){ * @param arg Not used */ void stream_dap_delete(dap_client_remote_t* sh, void * arg){ + if(!sh) + return; dap_stream_t * sid = DAP_STREAM(sh); if(sid == NULL) return; -- GitLab