From 270768f0b85a96eba3578bd0ffe3cf25ac76dc5a Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Wed, 4 Dec 2019 22:26:04 +0700 Subject: [PATCH] [+] ready_to_read flag operation function --- dap_stream_ch.c | 28 ++++++++++++++++++++++++++++ dap_stream_ch.h | 1 + 2 files changed, 29 insertions(+) diff --git a/dap_stream_ch.c b/dap_stream_ch.c index 8573eaa..4cd6c5f 100755 --- a/dap_stream_ch.c +++ b/dap_stream_ch.c @@ -115,6 +115,34 @@ void dap_stream_ch_delete(dap_stream_ch_t*ch) //free(ch); } +/** + * @brief dap_stream_ch_set_ready_to_read + * @param a_ch + * @param a_is_ready + */ +void dap_stream_ch_set_ready_to_read(dap_stream_ch_t * a_ch,bool a_is_ready) +{ + pthread_mutex_lock(&a_ch->mutex); + if( a_ch->ready_to_read != a_is_ready){ + //log_it(L_DEBUG,"Change channel '%c' to %s", (char) ch->proc->id, is_ready?"true":"false"); + a_ch->ready_to_read=a_is_ready; + if(a_ch->stream->conn_udp) + dap_udp_client_ready_to_read(a_ch->stream->conn,a_is_ready); + // for stream server + else if(a_ch->stream->conn) + dap_client_remote_ready_to_read( a_ch->stream->conn,a_is_ready); + // for stream client + else if(a_ch->stream->events_socket) + dap_events_socket_set_readable( a_ch->stream->events_socket, a_is_ready); + } + pthread_mutex_unlock(&a_ch->mutex); +} + +/** + * @brief dap_stream_ch_set_ready_to_write + * @param ch + * @param is_ready + */ void dap_stream_ch_set_ready_to_write(dap_stream_ch_t * ch,bool is_ready) { pthread_mutex_lock(&ch->mutex); diff --git a/dap_stream_ch.h b/dap_stream_ch.h index ad7180e..2b8a72c 100755 --- a/dap_stream_ch.h +++ b/dap_stream_ch.h @@ -55,6 +55,7 @@ void dap_stream_ch_deinit(); dap_stream_ch_t* dap_stream_ch_new( dap_stream_t * dap_stream,uint8_t id); +void dap_stream_ch_set_ready_to_read(dap_stream_ch_t * ch,bool is_ready); void dap_stream_ch_set_ready_to_write(dap_stream_ch_t * ch,bool is_ready); void dap_stream_ch_delete(dap_stream_ch_t*ch); -- GitLab