diff --git a/tonic-build/src/server.rs b/tonic-build/src/server.rs index 99a204b..04ce444 100644 --- a/tonic-build/src/server.rs +++ b/tonic-build/src/server.rs @@ -179,7 +179,7 @@ pub(crate) fn generate_internal( impl Clone for _Inner { fn clone(&self) -> Self { - Self(self.0.clone()) + Self(Arc::clone(&self.0)) } } @@ -404,7 +404,7 @@ fn generate_unary( type Future = BoxFuture, tonic::Status>; fn call(&mut self, request: tonic::Request<#request>) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).#method_ident(request).await }; @@ -456,7 +456,7 @@ fn generate_server_streaming( type Future = BoxFuture, tonic::Status>; fn call(&mut self, request: tonic::Request<#request>) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).#method_ident(request).await }; @@ -505,7 +505,7 @@ fn generate_client_streaming( type Future = BoxFuture, tonic::Status>; fn call(&mut self, request: tonic::Request>) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).#method_ident(request).await @@ -559,7 +559,7 @@ fn generate_streaming( type Future = BoxFuture, tonic::Status>; fn call(&mut self, request: tonic::Request>) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).#method_ident(request).await }; diff --git a/tonic-health/src/generated/grpc.health.v1.rs b/tonic-health/src/generated/grpc.health.v1.rs index e9f9cfc..0b01e54 100644 --- a/tonic-health/src/generated/grpc.health.v1.rs +++ b/tonic-health/src/generated/grpc.health.v1.rs @@ -278,7 +278,7 @@ pub mod health_server { &mut self, request: tonic::Request, ) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).check(request).await }; Box::pin(fut) } @@ -317,7 +317,7 @@ pub mod health_server { &mut self, request: tonic::Request, ) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).watch(request).await }; Box::pin(fut) } @@ -366,7 +366,7 @@ pub mod health_server { } impl Clone for _Inner { fn clone(&self) -> Self { - Self(self.0.clone()) + Self(Arc::clone(&self.0)) } } impl std::fmt::Debug for _Inner { diff --git a/tonic-reflection/src/generated/grpc.reflection.v1alpha.rs b/tonic-reflection/src/generated/grpc.reflection.v1alpha.rs index 0e2f4e2..1a97de9 100644 --- a/tonic-reflection/src/generated/grpc.reflection.v1alpha.rs +++ b/tonic-reflection/src/generated/grpc.reflection.v1alpha.rs @@ -337,7 +337,7 @@ pub mod server_reflection_server { tonic::Streaming, >, ) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { (*inner).server_reflection_info(request).await }; @@ -388,7 +388,7 @@ pub mod server_reflection_server { } impl Clone for _Inner { fn clone(&self) -> Self { - Self(self.0.clone()) + Self(Arc::clone(&self.0)) } } impl std::fmt::Debug for _Inner { diff --git a/tonic/benches-disabled/benchmarks/compiled_protos/helloworld.rs b/tonic/benches-disabled/benchmarks/compiled_protos/helloworld.rs index dcfce39..8230522 100755 --- a/tonic/benches-disabled/benchmarks/compiled_protos/helloworld.rs +++ b/tonic/benches-disabled/benchmarks/compiled_protos/helloworld.rs @@ -139,7 +139,7 @@ pub mod server { &mut self, request: tonic::Request, ) -> Self::Future { - let inner = self.0.clone(); + let inner = Arc::clone(&self.0); let fut = async move { inner.say_hello(request).await }; Box::pin(fut) }