//! Container State Actor
//!
//! 使用 Actor 模式管理容器状态,避免 DashMap 跨 await 持有锁导致的死锁问题。
//!
//! # 架构
//! - `ContainerStateActor`: 独占 HashMap,在独立 task 中运行,处理所有状态操作
//! - `ContainerStateHandle`: 可克隆的句柄,提供 async 方法与 Actor 通信
//!
//! # 优点
//! - 完全无锁,不会死锁
//! - 状态变更顺序化,更易调试
//! - 符合 Rust async 最佳实践
use crate::DockerContainerInfo;
use std::collections::HashMap;
use tokio::sync::{mpsc, oneshot};
use tracing::{debug, error, warn};
/// Actor 通道缓冲区大小
const CHANNEL_BUFFER_SIZE: usize = 256;
/// 容器状态操作命令
#[derive(Debug)]
pub enum ContainerStateCommand {
/// 获取容器信息
Get {
key: String,
reply: oneshot::Sender