Loading src/http/WebSocketProxy.cpp +7 −0 Changes for src/http/WebSocketProxy.cpp: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -74,6 +74,13 @@ struct ScopedTunnelSlot { if (acquired) g_activeWsTunnels.fetch_sub(1, std::memory_order_relaxed); } ScopedTunnelSlot(const ScopedTunnelSlot &) = delete; ScopedTunnelSlot &operator=(const ScopedTunnelSlot &) = delete; // Move-only: a user-declared destructor + deleted copy ctor suppress the // implicit move ctor, which std::thread's constructor needs to relocate // this into its internal storage (see relayLoop's thread launch below). ScopedTunnelSlot(ScopedTunnelSlot &&other) noexcept : acquired(other.acquired) { other.acquired = false; } }; // Opens a raw (not HttpClient) connection to the upstream, blocking until Loading Loading
src/http/WebSocketProxy.cpp +7 −0 Changes for src/http/WebSocketProxy.cpp: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -74,6 +74,13 @@ struct ScopedTunnelSlot { if (acquired) g_activeWsTunnels.fetch_sub(1, std::memory_order_relaxed); } ScopedTunnelSlot(const ScopedTunnelSlot &) = delete; ScopedTunnelSlot &operator=(const ScopedTunnelSlot &) = delete; // Move-only: a user-declared destructor + deleted copy ctor suppress the // implicit move ctor, which std::thread's constructor needs to relocate // this into its internal storage (see relayLoop's thread launch below). ScopedTunnelSlot(ScopedTunnelSlot &&other) noexcept : acquired(other.acquired) { other.acquired = false; } }; // Opens a raw (not HttpClient) connection to the upstream, blocking until Loading