ForcePilot/backend/package/yuxi/channel/sdk/async_lock.py
Kris b438af3ba8 feat(channel-sdk): 新增完整的渠道SDK工具链
本提交新增了全渠道SDK核心模块:
1.  异步锁、目标解析、动作调度等基础工具
2.  消息动作注册与统一调度系统
3.  测试套件与契约测试框架
4.  完整的目标解析流水线与工具函数
5.  资源依赖注入与生命周期管理
2026-05-21 10:29:12 +08:00

18 lines
433 B
Python

from __future__ import annotations
import asyncio
from collections.abc import Callable, Coroutine
from typing import TypeVar
T = TypeVar("T")
def create_async_lock() -> Callable[[Callable[[], Coroutine[None, None, T]]], Coroutine[None, None, T]]:
lock = asyncio.Lock()
async def with_lock(task: Callable[[], Coroutine[None, None, T]]) -> T:
async with lock:
return await task()
return with_lock