carla-simulator/carla

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

Fechada

#9.759 aberto em 27 de mai. de 2026

 (0 comentário) (0 reação) (0 responsável)C++ (3.227 forks)batch import
Good community contribgood first issue

Métricas do repositório

Stars
 (10.105 estrelas)
Métricas de merge de PR
 (Mesclagem média 17d 10h) (21 fundiu PRs em 30d)

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

Guia do colaborador