carla-simulator/carla

port(streaming): ServerSession::CloseNow idempotency fix to ue5-dev

Chiusa

#9759 aperta il 27 mag 2026

 (0 commenti) (0 reazioni) (0 assegnatari)C++ (3227 fork)batch import
Good community contribgood first issue

Metriche repository

Star
 (10.105 stelle)
Metriche merge PR
 (Merge medio 17g 10h) (21 PR mergiate in 30 g)

Descrizione

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.h
  • LibCarla/source/carla/streaming/detail/tcp/ServerSession.cpp

References

  • Fix: #9740

Guida contributor