MCPcopy Create free account
hub / github.com/AI45Lab/Code / build_command_queue

Function build_command_queue

core/src/agent_api/session_runtime.rs:67–104  ·  view source on GitHub ↗
(
    opts: &SessionOptions,
    session_id: &str,
    agent_event_tx: broadcast::Sender<AgentEvent>,
)

Source from the content-addressed store, hash-verified

65}
66
67fn build_command_queue(
68 opts: &SessionOptions,
69 session_id: &str,
70 agent_event_tx: broadcast::Sender<AgentEvent>,
71) -> Option<Arc<SessionLaneQueue>> {
72 let queue_config = opts.queue_config.as_ref()?;
73
74 let rt = tokio::runtime::Handle::try_current();
75 match rt {
76 Ok(handle) => {
77 let queue = tokio::task::block_in_place(|| {
78 handle.block_on(SessionLaneQueue::new(
79 session_id,
80 queue_config.clone(),
81 agent_event_tx,
82 ))
83 });
84 match queue {
85 Ok(queue) => {
86 let queue = Arc::new(queue);
87 let queue_to_start = Arc::clone(&queue);
88 tokio::task::block_in_place(|| {
89 handle.block_on(async { queue_to_start.start().await.ok() })
90 });
91 Some(queue)
92 }
93 Err(e) => {
94 tracing::warn!("Failed to create session lane queue: {}", e);
95 None
96 }
97 }
98 }
99 Err(_) => {
100 tracing::warn!("No async runtime available for queue creation - queue disabled");
101 None
102 }
103 }
104}
105
106fn build_tool_context(
107 code_config: &CodeConfig,

Callers 1

build_session_runtimeFunction · 0.85

Calls 3

block_onMethod · 0.80
cloneMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected