<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/llwebrtc, branch main</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://www.megapahit.org/viewer.git/atom?h=main</id>
<link rel='self' href='https://www.megapahit.org/viewer.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/'/>
<updated>2026-08-07T23:01:40Z</updated>
<entry>
<title>Merge tag 'Second_Life_Release#932e8ac3-26.3' into 26.3</title>
<updated>2026-08-07T23:01:40Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-08-07T23:01:40Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=704cacceb57b8ca53acb25eecb981a4bdc2ecd04'/>
<id>urn:sha1:704cacceb57b8ca53acb25eecb981a4bdc2ecd04</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'Second_Life_Release#0686467f-26.3' into 26.3</title>
<updated>2026-08-07T02:24:49Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-08-07T02:24:49Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=a20370141bb8840c24dbca18f4311aaf238348a8'/>
<id>urn:sha1:a20370141bb8840c24dbca18f4311aaf238348a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>p#682 Fix shutdown crash flushing peer connection stats</title>
<updated>2026-08-06T23:54:44Z</updated>
<author>
<name>Roxie Linden</name>
<email>roxie@lindenlab.com</email>
</author>
<published>2026-08-06T23:54:44Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=8c5ec43ebc5c51372e2ebf4e3cb13faa7f1283e7'/>
<id>urn:sha1:8c5ec43ebc5c51372e2ebf4e3cb13faa7f1283e7</id>
<content type='text'>
LLWebRTCImpl::terminate() only posted the peer connection closes to the
signaling thread, so they ran behind the BlockingCall that releases the
factory -- after the factory and device module were gone, or not at all
if the thread was destroyed with the task still queued.

That matters for stats: PeerConnection::Close() flushes any in-flight
GetStats request and delivers the report inline, and our callback walks
mSignalingObserverList to hand it to the viewer.  By then the viewer's
LLVoiceWebRTCConnection objects have been destroyed -- on shutdown they
deliberately skip unsetSignalingObserver, on the assumption that
llwebrtc::terminate() already finished the job -- so the stats callback
reaches into freed memory.

Split the close out of LLWebRTCPeerConnectionImpl::terminate() into
closeOnSignalingThread() and run it from a BlockingCall, so connections
are closed and destroyed on the signaling thread before the factory, the
device module or the observers go away.  Also take ownership of the
connection list up front so the detached thread in the timeout path
isn't racing the main thread over it, clear the observer lists as part
of the close, and skip the observer notification for a stats report
delivered while shutting down.

Co-Authored-By: Claude Opus 5 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Terminate open connections on the signaling thread during shutdown.</title>
<updated>2026-08-06T16:19:41Z</updated>
<author>
<name>Roxie Linden</name>
<email>roxie@lindenlab.com</email>
</author>
<published>2026-08-05T23:10:40Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=0686467f42a06ec84368851f48f31beb43888df0'/>
<id>urn:sha1:0686467f42a06ec84368851f48f31beb43888df0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>p#682 WebRTC can lock up after OS sleep</title>
<updated>2026-08-06T16:19:41Z</updated>
<author>
<name>Andrey Kleshchev</name>
<email>117672381+akleshchev@users.noreply.github.com</email>
</author>
<published>2026-08-03T19:52:13Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=35e7b998622fecb75d4dc01771f02d2d60443637'/>
<id>urn:sha1:35e7b998622fecb75d4dc01771f02d2d60443637</id>
<content type='text'>
</content>
</entry>
<entry>
<title>p#682 Improve logging for system events and session (#6086)</title>
<updated>2026-08-04T16:39:54Z</updated>
<author>
<name>Andrey Kleshchev</name>
<email>117672381+akleshchev@users.noreply.github.com</email>
</author>
<published>2026-08-04T16:39:54Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=cef8c85e2c70adbc42d9c2e4894633ad657f355d'/>
<id>urn:sha1:cef8c85e2c70adbc42d9c2e4894633ad657f355d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'main' into 26.3</title>
<updated>2026-07-31T11:34:11Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-07-31T11:34:11Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=cdd2eaf40207117722d046fcc9c5707b884c4b49'/>
<id>urn:sha1:cdd2eaf40207117722d046fcc9c5707b884c4b49</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Compare LINUX_DISTRO with freedesktop on Flatpak</title>
<updated>2026-07-31T11:29:02Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-07-31T11:29:02Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=7e47eff5042c2fb897c8eee1219889a84ca3bf36'/>
<id>urn:sha1:7e47eff5042c2fb897c8eee1219889a84ca3bf36</id>
<content type='text'>
so no need for USE_FLATPAK, and just maybe there are some other
platforms that use this runtime as the distro info.
</content>
</entry>
<entry>
<title>Merge tag 'Second_Life_Release#bcfda3b6-26.3' into 26.3</title>
<updated>2026-07-24T03:24:12Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-07-24T03:24:12Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=fc46ce4c0c7d81349d55933fb4bef3260f79ac8b'/>
<id>urn:sha1:fc46ce4c0c7d81349d55933fb4bef3260f79ac8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge tag 'Second_Life_Release#e9fd0450-26.3' into 26.3</title>
<updated>2026-07-23T02:55:36Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-07-23T02:55:36Z</published>
<link rel='alternate' type='text/html' href='https://www.megapahit.org/viewer.git/commit/?id=c3ee89aa707876a38bbec6dff5d538cc0bdf5496'/>
<id>urn:sha1:c3ee89aa707876a38bbec6dff5d538cc0bdf5496</id>
<content type='text'>
</content>
</entry>
</feed>
