已关闭
[bug] 扩展停用后设备轮询定时器未释放 #75
guomengwei创建于  8月21日关闭于  8月25日
guomengwei成员
8月21日 创建

问题描述(必填)

KeelsDeviceManager 在构造时通过 setInterval() 启动设备轮询,但没有保存定时器句柄,也没有在扩展停用时停止轮询。同时,KeelsDeviceManager 未加入 ExtensionContext.subscriptions,其 dispose() 不会由 VS Code 自动调用。

该问题与具体 CJMP 工程功能无关,只要插件被激活并创建 KeelsDeviceManager,设备轮询就会启动。若扩展停用但 Extension Host 进程仍在运行,轮询任务可能继续执行并持有相关对象。

复现步骤(必填)

  1. 在 VS Code 中激活 CJMP 插件。
  2. 插件创建 KeelsDeviceManager,并每 10 秒执行一次设备轮询。
  3. 停用或重载插件。
  4. 检查定时器生命周期:当前实现既未保存 setInterval() 的返回值,也未调用 clearInterval()。

期望结果(必填)

  • KeelsDeviceManager 保存设备轮询定时器句柄。
  • KeelsDeviceManager 加入 ExtensionContext.subscriptions。
  • 扩展停用时调用 dispose(),并通过 clearInterval() 停止设备轮询。
  • 状态栏资源继续正常释放。

实际结果/日志(可选)

  • startPolling() 直接调用 setInterval(),返回值被丢弃。
  • dispose() 只释放状态栏,没有停止设备轮询。
  • KeelsDeviceManager 未注册到扩展订阅列表。

环境信息(可选)

  • 仓库:CJMP/IDE-Plugins
  • 基线:main
  • 发现方式:代码检查
likedislike
Gguomengwei成员
8月21日 添加了label:bug
Gguomengwei成员
8月21日 移除了负责人 Axing_huawei
Gguomengwei成员
8月21日 将 Gmw2012 设为负责人
Gguomengwei成员
8月21日 关联了pull request:[bugfix][ide-plugins] #75 修复扩展停用后设备轮询未停止
Gguomengwei成员
8月24日 关联了看板:工具链看板
Ssonghaifeng成员
8月25日 关闭了 issue
Gguomengwei成员
8月29日 移除了看板:工具链看板