Commit Graph
10 Commits
Author SHA1 Message Date
YuWuKunCheng 0a7e9dc896 观察者 线段分析/扩展分析 支持无限递归,保留之前序列为@property 形式 2026-06-06 22:02:47 +08:00
YuWuKunCheng e33b1f0744 修复 Arc::make_mut 遗留问题
增加 基础数据对比方法
2026-06-05 16:35:31 +08:00
YuWuKunCheng 823a24d364 第九版 2026-06-05 09:02:54 +08:00
YuWuKunCheng b7c4e60420 1. thread_local! 导致跨线程缓存不可见(主要问题)
kline_py.rs 中 BSP_CACHE、KLINE_IDENTITY、BAR_IDENTITY 使用了 thread_local!。主线程调用 识别买卖点() →
  买卖点信息.add() 写入的是主线程的 PySet,backtrader 策略线程读取的是自己线程独立的空 PySet。

  修复:将三个缓存从 thread_local! 改为全局 static + std::sync::LazyLock<RwLock<HashMap<...>>>

  影响分析

  这些身份缓存的影响与 KLINE_IDENTITY/BAR_IDENTITY 不同——它们只影响 Python 对象身份(is
  比较),不直接影响数据内容(因为 Rust 数据通过 Arc 共享,读写都是同一份)。

  具体后果:
  - 不同线程访问同一个 Rust Arc 会得到不同的 Python wrapper 对象
  - a is b 跨线程比较返回 False,哪怕它们包装同一个底层 Rust 对象
  - 每个线程维护一份独立缓存,内存浪费(不过 wrapper 很小)
2026-05-30 22:15:09 +08:00
YuWuKunCheng af3ebf13c8 修复 “cargo clippy -- -D warnings” 产生的错误 2026-05-30 13:25:57 +08:00
YuWuKunCheng c87fb66d34 修复 分型时间戳 2026-05-29 17:30:58 +08:00
YuWuKunCheng 5c3179eec8 第八版 2026-05-29 04:05:36 +08:00
YuWuKunCheng a67540fc95 第五版 2026-05-26 19:01:30 +08:00
YuWuKunCheng bf96517c9d 第二版 2026-05-25 11:07:08 +08:00
YuWuKunCheng f92eef11fb 第一版 2026-05-25 02:16:35 +08:00