11use std:: convert:: TryFrom ;
22use std:: time:: Duration ;
3- use tonic:: { transport:: Channel , Request } ;
3+ use tonic:: { transport:: Channel , Request , Streaming } ;
44use tracing:: debug;
55
66use crate :: protocols:: spec:: {
@@ -54,18 +54,18 @@ impl SglangSchedulerClient {
5454
5555 /// Submit a generation request (returns streaming response)
5656 pub async fn generate (
57- & mut self ,
57+ & self ,
5858 req : proto:: GenerateRequest ,
59- ) -> Result < tonic :: Streaming < proto:: GenerateResponse > , Box < dyn std:: error:: Error + Send + Sync > >
60- {
59+ ) -> Result < Streaming < proto:: GenerateResponse > , Box < dyn std:: error:: Error + Send + Sync > > {
60+ let mut client = self . client . clone ( ) ;
6161 let request = Request :: new ( req) ;
62- let response = self . client . generate ( request) . await ?;
62+ let response = client. generate ( request) . await ?;
6363 Ok ( response. into_inner ( ) )
6464 }
6565
6666 /// Perform health check
6767 pub async fn health_check (
68- & mut self ,
68+ & self ,
6969 ) -> Result < proto:: HealthCheckResponse , Box < dyn std:: error:: Error + Send + Sync > > {
7070 debug ! ( "Sending health check request" ) ;
7171 let request = Request :: new ( proto:: HealthCheckRequest {
@@ -75,43 +75,47 @@ impl SglangSchedulerClient {
7575 } ) ,
7676 } ) ;
7777
78- let response = self . client . health_check ( request) . await ?;
78+ let mut client = self . client . clone ( ) ;
79+ let response = client. health_check ( request) . await ?;
7980 debug ! ( "Health check response received" ) ;
8081 Ok ( response. into_inner ( ) )
8182 }
8283
8384 /// Abort a request
8485 pub async fn abort_request (
85- & mut self ,
86+ & self ,
8687 request_id : String ,
8788 reason : String ,
8889 ) -> Result < ( ) , Box < dyn std:: error:: Error + Send + Sync > > {
8990 let request = Request :: new ( proto:: AbortRequest { request_id, reason } ) ;
9091
91- self . client . abort ( request) . await ?;
92+ let mut client = self . client . clone ( ) ;
93+ client. abort ( request) . await ?;
9294 Ok ( ( ) )
9395 }
9496
9597 /// Get model information
9698 pub async fn get_model_info (
97- & mut self ,
99+ & self ,
98100 ) -> Result < proto:: GetModelInfoResponse , Box < dyn std:: error:: Error + Send + Sync > > {
99101 debug ! ( "Requesting model info" ) ;
100102 let request = Request :: new ( proto:: GetModelInfoRequest { } ) ;
101103
102- let response = self . client . get_model_info ( request) . await ?;
104+ let mut client = self . client . clone ( ) ;
105+ let response = client. get_model_info ( request) . await ?;
103106 debug ! ( "Model info response received" ) ;
104107 Ok ( response. into_inner ( ) )
105108 }
106109
107110 /// Get server information
108111 pub async fn get_server_info (
109- & mut self ,
112+ & self ,
110113 ) -> Result < proto:: GetServerInfoResponse , Box < dyn std:: error:: Error + Send + Sync > > {
111114 debug ! ( "Requesting server info" ) ;
112115 let request = Request :: new ( proto:: GetServerInfoRequest { } ) ;
113116
114- let response = self . client . get_server_info ( request) . await ?;
117+ let mut client = self . client . clone ( ) ;
118+ let response = client. get_server_info ( request) . await ?;
115119 debug ! ( "Server info response received" ) ;
116120 Ok ( response. into_inner ( ) )
117121 }
0 commit comments