From af984fd7b8dafffc7f9683bb4dfe6df0429a1e2f Mon Sep 17 00:00:00 2001 From: Fletcher Dunn Date: Wed, 16 Jun 2021 11:52:28 -0700 Subject: [PATCH] Fix CConnectionTransportP2PICE deleting itself from within its thinker. That's exactly what ScheduledMethodThinkerLockable says we cannot do! P4:6605430 --- .../clientlib/steamnetworkingsockets_p2p_ice.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp b/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp index 70b7f3c..b3c4f48 100644 --- a/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp +++ b/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_p2p_ice.cpp @@ -266,8 +266,12 @@ void CConnectionTransportP2PICE::P2PTransportThink( SteamNetworkingMicroseconds // Are we dead? if ( !m_pICESession || Connection().m_pTransportICEPendingDelete ) { - Connection().CheckCleanupICE(); - // We could be deleted here! + // If we're a zombie, we should be queued for destruction + Assert( Connection().m_pTransportICE != this ); + Assert( Connection().m_pTransportICEPendingDelete == this ); + + // Make sure connection wakes up to do this + Connection().SetNextThinkTimeASAP(); return; }