From 0052c1d22d1a709a9d12c879eb1b4e4f9b9e6608 Mon Sep 17 00:00:00 2001 From: Chang Su Date: Mon, 29 Sep 2025 12:55:43 -0700 Subject: [PATCH] Use `get_pooled` in `process_single_choice` --- sgl-router/src/routers/grpc/router.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/sgl-router/src/routers/grpc/router.rs b/sgl-router/src/routers/grpc/router.rs index 40dd99088cc3..d3d58e2632a0 100644 --- a/sgl-router/src/routers/grpc/router.rs +++ b/sgl-router/src/routers/grpc/router.rs @@ -769,20 +769,22 @@ impl GrpcRouter { // Check if reasoning parsing is enabled and separate_reasoning is requested if original_request.separate_reasoning { - if let Ok(mut parser) = self + let pooled_parser = self .reasoning_parser_factory - .create(&original_request.model) - { - match parser.detect_and_parse_reasoning(&processed_text) { - Ok(result) => { - if !result.reasoning_text.is_empty() { - reasoning_text = Some(result.reasoning_text); - } - processed_text = result.normal_text; - } - Err(e) => { - return Err(format!("Reasoning parsing error: {}", e)); + .get_pooled(&original_request.model); + + let mut parser = pooled_parser + .lock() + .map_err(|e| format!("Failed to acquire reasoning parser lock: {}", e))?; + match parser.detect_and_parse_reasoning(&processed_text) { + Ok(result) => { + if !result.reasoning_text.is_empty() { + reasoning_text = Some(result.reasoning_text); } + processed_text = result.normal_text; + } + Err(e) => { + return Err(format!("Reasoning parsing error: {}", e)); } } }