LiteyukiBot-TriM/liteyuki/comm/__init__.py

39 lines
847 B
Python
Raw Permalink Normal View History

2024-08-12 11:44:30 +08:00
# -*- coding: utf-8 -*-
"""
该模块用于轻雪主进程和Nonebot子进程之间的通信
2024-10-06 02:39:10 +08:00
依赖关系
event -> _
storage -> channel_
rpc -> channel_, storage
2024-08-12 11:44:30 +08:00
"""
from liteyuki.comm.channel import (
Channel,
get_channel,
set_channel,
set_channels,
2024-10-06 02:39:10 +08:00
get_channels,
active_channel,
passive_channel
2024-08-12 11:44:30 +08:00
)
from liteyuki.comm.event import Event
__all__ = [
"Channel",
"Event",
"get_channel",
"set_channel",
"set_channels",
2024-10-06 02:39:10 +08:00
"get_channels",
"active_channel",
"passive_channel"
2024-08-12 11:44:30 +08:00
]
2024-10-06 02:39:10 +08:00
from liteyuki.utils import IS_MAIN_PROCESS
# 第一次引用必定为赋值
_ref_count = 0
if not IS_MAIN_PROCESS:
if (active_channel is None or passive_channel is None) and _ref_count > 0:
raise RuntimeError("无法在子进程中初始化 Channel")
_ref_count += 1