carla-simulator/carla

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

Fermée

#9 759 ouverte le 27 mai 2026

 (0 commentaire) (0 réaction) (0 personne assignée)C++ (3 227 forks)batch import
Good community contribgood first issue

Métriques du dépôt

Stars
 (10 105 étoiles)
Métriques de merge PR
 (Merge moyen 17j 10h) (21 PRs mergées en 30 j)

Description

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

Guide contributeur