From: Jaeyun Date: Wed, 1 Dec 2021 09:42:29 +0000 (+0900) Subject: [Query] fix invalid socket mode X-Git-Tag: accepted/tizen/unified/20211222.230213~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=10813c66efd900a5eac4fba9ceadda2c4e8cd08f;p=platform%2Fupstream%2Fnnstreamer.git [Query] fix invalid socket mode Fix socket op mode, blocking IO is unnecessary with multi-threaded server node. Signed-off-by: Jaeyun --- diff --git a/gst/nnstreamer/tensor_query/tensor_query_client.c b/gst/nnstreamer/tensor_query/tensor_query_client.c index 313a942..d63201e 100644 --- a/gst/nnstreamer/tensor_query/tensor_query_client.c +++ b/gst/nnstreamer/tensor_query/tensor_query_client.c @@ -388,7 +388,7 @@ _connect_to_server (GstTensorQueryClient * self) } /** Receive client ID from server src */ - if (0 != nnstreamer_query_receive (self->src_conn, &cmd_buf, 1)) { + if (0 != nnstreamer_query_receive (self->src_conn, &cmd_buf)) { nns_loge ("Failed to receive client ID."); return FALSE; } @@ -402,7 +402,7 @@ _connect_to_server (GstTensorQueryClient * self) return FALSE; } - if (0 != nnstreamer_query_receive (self->src_conn, &cmd_buf, 1)) { + if (0 != nnstreamer_query_receive (self->src_conn, &cmd_buf)) { nns_loge ("Failed to receive response from the query server."); return FALSE; } @@ -697,7 +697,7 @@ gst_tensor_query_client_chain (GstPad * pad, goto retry; } /** Receive start command buffer */ - if (0 != nnstreamer_query_receive (self->sink_conn, &cmd_buf, 1)) { + if (0 != nnstreamer_query_receive (self->sink_conn, &cmd_buf)) { nns_loge ("Failed to receive start command buffer"); goto retry; } @@ -734,7 +734,7 @@ gst_tensor_query_client_chain (GstPad * pad, } cmd_buf.data.data = out_info.data; - ecode = nnstreamer_query_receive (self->sink_conn, &cmd_buf, 1); + ecode = nnstreamer_query_receive (self->sink_conn, &cmd_buf); gst_memory_unmap (out_mem, &out_info); if (ecode != 0) { @@ -744,7 +744,7 @@ gst_tensor_query_client_chain (GstPad * pad, } /** Receive end command buffer */ - if (0 != nnstreamer_query_receive (self->sink_conn, &cmd_buf, 1)) { + if (0 != nnstreamer_query_receive (self->sink_conn, &cmd_buf)) { nns_loge ("Failed to receive end command buffer"); goto error; } diff --git a/gst/nnstreamer/tensor_query/tensor_query_common.c b/gst/nnstreamer/tensor_query/tensor_query_common.c index 7c9de05..ad3f589 100644 --- a/gst/nnstreamer/tensor_query/tensor_query_common.c +++ b/gst/nnstreamer/tensor_query/tensor_query_common.c @@ -109,7 +109,7 @@ typedef struct static int query_tcp_receive (GSocket * socket, uint8_t * data, size_t size, - GCancellable * cancellable, int32_t blocking); + GCancellable * cancellable); static gboolean query_tcp_send (GSocket * socket, uint8_t * data, size_t size, GCancellable * cancellable); static void @@ -264,13 +264,12 @@ nnstreamer_query_connect (TensorQueryProtocol protocol, const char *ip, /** * @brief receive command from connected device. * @return 0 if OK, negative value if error - * @param blocking Socket operation mode. 0 for non-blocking mode, other for blocking mode. * @note The socket operates in two modes: blocking and non-blocking. * In non-blocking mode, if there is no data available, it is immediately returned. */ int nnstreamer_query_receive (query_connection_handle connection, - TensorQueryCommandData * data, int32_t blocking) + TensorQueryCommandData * data) { TensorQueryConnection *conn = (TensorQueryConnection *) connection; @@ -285,7 +284,7 @@ nnstreamer_query_receive (query_connection_handle connection, TensorQueryCommand cmd; if (query_tcp_receive (conn->socket, (uint8_t *) & cmd, sizeof (cmd), - conn->cancellable, blocking) < 0) { + conn->cancellable) < 0) { nns_logd ("Failed to receive from socket"); return -EREMOTEIO; } @@ -294,13 +293,13 @@ nnstreamer_query_receive (query_connection_handle connection, if (cmd == _TENSOR_QUERY_CMD_TRANSFER_DATA) { /* receive size */ if (query_tcp_receive (conn->socket, (uint8_t *) & data->data.size, - sizeof (data->data.size), conn->cancellable, 1) < 0) { + sizeof (data->data.size), conn->cancellable) < 0) { nns_logd ("Failed to receive size from socket"); return -EREMOTEIO; } /* receive data */ if (query_tcp_receive (conn->socket, (uint8_t *) data->data.data, - data->data.size, conn->cancellable, 1) < 0) { + data->data.size, conn->cancellable) < 0) { nns_loge ("Failed to receive data from socket"); return -EREMOTEIO; } @@ -308,14 +307,14 @@ nnstreamer_query_receive (query_connection_handle connection, } else if (data->cmd == _TENSOR_QUERY_CMD_CLIENT_ID) { /* receive client id */ if (query_tcp_receive (conn->socket, (uint8_t *) & data->client_id, - CLIENT_ID_LEN, conn->cancellable, 1) < 0) { + CLIENT_ID_LEN, conn->cancellable) < 0) { nns_logd ("Failed to receive client id from socket"); return -EREMOTEIO; } } else { /* receive data_info */ if (query_tcp_receive (conn->socket, (uint8_t *) & data->data_info, - sizeof (TensorQueryDataInfo), conn->cancellable, 1) < 0) { + sizeof (TensorQueryDataInfo), conn->cancellable) < 0) { nns_logd ("Failed to receive data info from socket"); return -EREMOTEIO; } @@ -610,16 +609,15 @@ nnstreamer_query_server_accept (query_server_handle server_data) */ static int query_tcp_receive (GSocket * socket, uint8_t * data, size_t size, - GCancellable * cancellable, int32_t blocking) + GCancellable * cancellable) { size_t bytes_received = 0; ssize_t rret; GError *err = NULL; while (bytes_received < size) { - rret = - g_socket_receive_with_blocking (socket, (char *) data + bytes_received, - size - bytes_received, blocking, cancellable, &err); + rret = g_socket_receive (socket, (char *) data + bytes_received, + size - bytes_received, cancellable, &err); if (rret == 0) { nns_logi ("Connection closed"); @@ -693,7 +691,7 @@ _message_handler (void *thread_data) goto done; } _conn->client_id = cmd_data.client_id; - if (0 != nnstreamer_query_receive (_conn, &cmd_data, 1)) { + if (0 != nnstreamer_query_receive (_conn, &cmd_data)) { nns_logi ("Failed to receive cmd"); goto done; } @@ -729,7 +727,7 @@ _message_handler (void *thread_data) break; } - if (0 != nnstreamer_query_receive (_conn, &cmd_data, 1)) { + if (0 != nnstreamer_query_receive (_conn, &cmd_data)) { nns_loge ("Failed to receive cmd"); break; } @@ -749,7 +747,7 @@ _message_handler (void *thread_data) cmd_data.data.data = map.data; cmd_data.data.size = map.size; - ecode = nnstreamer_query_receive (_conn, &cmd_data, 1); + ecode = nnstreamer_query_receive (_conn, &cmd_data); gst_memory_unmap (mem, &map); if (ecode != 0) { @@ -759,7 +757,7 @@ _message_handler (void *thread_data) } /* receive end */ - if (0 != nnstreamer_query_receive (_conn, &cmd_data, 1) || + if (0 != nnstreamer_query_receive (_conn, &cmd_data) || cmd_data.cmd != _TENSOR_QUERY_CMD_TRANSFER_END) { nns_logi ("Failed to receive end command"); goto reset_buffer; @@ -870,7 +868,7 @@ accept_socket_async_cb (GObject * source, GAsyncResult * result, return; } } else { /** server sink */ - if (0 != nnstreamer_query_receive (conn, &cmd_data, 1)) { + if (0 != nnstreamer_query_receive (conn, &cmd_data)) { nns_loge ("Failed to receive command."); goto error; } diff --git a/gst/nnstreamer/tensor_query/tensor_query_common.h b/gst/nnstreamer/tensor_query/tensor_query_common.h index 39ffe64..87ca99a 100644 --- a/gst/nnstreamer/tensor_query/tensor_query_common.h +++ b/gst/nnstreamer/tensor_query/tensor_query_common.h @@ -119,7 +119,7 @@ nnstreamer_query_send (query_connection_handle connection, TensorQueryCommandDat * @return 0 if OK, negative value if error */ extern int -nnstreamer_query_receive (query_connection_handle connection, TensorQueryCommandData *data, int32_t blocking); +nnstreamer_query_receive (query_connection_handle connection, TensorQueryCommandData *data); /** * @brief close connection with corresponding id.