感谢 @aerodomigue 在 fork aerodomigue/usbipdcpp 中做的稳定性修复工作。以下修复已合并到 upstream develop 分支:
竞态条件 & 稳定性:
handle_unlink_seqnum 共享锁提前释放导致 use-after-free
transfer_callback 中 LIBUSB_TRANSFER_ERROR 处理逻辑反转(SHORT_NOT_OK 判断反了)
pending_count_ 递减过早,与 on_disconnection 存在竞态
- receiver 线程绕过 sender 队列直接写 socket 导致并发写入
- sender TCP 写失败后仅 break 退出,session 未及时清理
immediately_stop 未唤醒 sender 线程
设备管理:
release_and_close_device 设备拔出后反查接口数量失败导致释放循环被跳过
新功能(参考 fork 设计):
LibusbServerConfig 配置结构体(skip_hub, auto_bind_hotplug)
bind_existing_devices() 启动时自动绑定所有设备
- daemon 模式(POSIX sigwait)
- Windows Service 示例
@aerodomigue 是否有兴趣向 upstream 提 PR?非常欢迎!
感谢 @aerodomigue 在 fork aerodomigue/usbipdcpp 中做的稳定性修复工作。以下修复已合并到 upstream develop 分支:
竞态条件 & 稳定性:
handle_unlink_seqnum共享锁提前释放导致 use-after-freetransfer_callback中LIBUSB_TRANSFER_ERROR处理逻辑反转(SHORT_NOT_OK 判断反了)pending_count_递减过早,与on_disconnection存在竞态immediately_stop未唤醒 sender 线程设备管理:
release_and_close_device设备拔出后反查接口数量失败导致释放循环被跳过新功能(参考 fork 设计):
LibusbServerConfig配置结构体(skip_hub, auto_bind_hotplug)bind_existing_devices()启动时自动绑定所有设备@aerodomigue 是否有兴趣向 upstream 提 PR?非常欢迎!