@@ -378,8 +378,8 @@ static bool parse_endpoint(const std::string & endpoint, std::string & host, int
378378}
379379
380380// RPC request : | rpc_cmd (1 byte) | request_size (8 bytes) | request_data (request_size bytes) |
381- // RPC response: | response_size (8 bytes) | response_data (response_size bytes) |
382- static bool send_rpc_cmd (const std::shared_ptr<socket_t > & sock, enum rpc_cmd cmd, const void * input, size_t input_size, void * output, size_t output_size ) {
381+ // No response
382+ static bool send_rpc_cmd (const std::shared_ptr<socket_t > & sock, enum rpc_cmd cmd, const void * input, size_t input_size) {
383383 uint8_t cmd_byte = cmd;
384384 if (!send_data (sock->fd , &cmd_byte, sizeof (cmd_byte))) {
385385 return false ;
@@ -390,6 +390,15 @@ static bool send_rpc_cmd(const std::shared_ptr<socket_t> & sock, enum rpc_cmd cm
390390 if (!send_data (sock->fd , input, input_size)) {
391391 return false ;
392392 }
393+ return true ;
394+ }
395+
396+ // RPC request : | rpc_cmd (1 byte) | request_size (8 bytes) | request_data (request_size bytes) |
397+ // RPC response: | response_size (8 bytes) | response_data (response_size bytes) |
398+ static bool send_rpc_cmd (const std::shared_ptr<socket_t > & sock, enum rpc_cmd cmd, const void * input, size_t input_size, void * output, size_t output_size) {
399+ if (!send_rpc_cmd (sock, cmd, input, input_size)) {
400+ return false ;
401+ }
393402 // TODO: currently the output_size is always known, do we need support for commands with variable output size?
394403 // even if we do, we can skip sending output_size from the server for commands with known output size
395404 uint64_t out_size;
@@ -555,7 +564,7 @@ static void ggml_backend_rpc_buffer_set_tensor(ggml_backend_buffer_t buffer, ggm
555564 memcpy (input.data (), &rpc_tensor, sizeof (rpc_tensor));
556565 memcpy (input.data () + sizeof (rpc_tensor), &offset, sizeof (offset));
557566 memcpy (input.data () + sizeof (rpc_tensor) + sizeof (offset), data, size);
558- bool status = send_rpc_cmd (ctx->sock , RPC_CMD_SET_TENSOR, input.data (), input.size (), nullptr , 0 );
567+ bool status = send_rpc_cmd (ctx->sock , RPC_CMD_SET_TENSOR, input.data (), input.size ());
559568 GGML_ASSERT (status);
560569}
561570
@@ -1428,9 +1437,6 @@ static void rpc_serve_client(ggml_backend_t backend, const char * cache_dir,
14281437 if (!server.set_tensor (input)) {
14291438 return ;
14301439 }
1431- if (!send_msg (sockfd, nullptr , 0 )) {
1432- return ;
1433- }
14341440 break ;
14351441 }
14361442 case RPC_CMD_SET_TENSOR_HASH: {
0 commit comments