carla-simulator/carla
在 GitHub 查看port(streaming): ServerSession::CloseNow idempotency fix to ue5-dev
Open
#9,759 创建于 2026年5月27日
Good community contribgood first issue
描述
Context
PR #9740 fixed a double-close race in ServerSession::CloseNow() on ue4-dev when two async paths (deadline timer + a failing write) both triggered a close for the same session, _on_closed() -> DisconnectSession() was called twice, silently evicting a still-alive subscriber from the world-snapshot stream.
The fix adds std::atomic_bool _is_closed{false} to ServerSession and guards CloseNow() with _is_closed.exchange(true) so the close path runs exactly once.
Task
Port the fix from ue4-dev to ue5-dev.
Files to update:
LibCarla/source/carla/streaming/detail/tcp/ServerSession.hLibCarla/source/carla/streaming/detail/tcp/ServerSession.cpp
References
- Fix: #9740