a4ced664cfb8dfec4fc45c0954e80bb842728886
ConcurrentDictionary.GetOrAdd may run its factory more than once when asked at the same time, and each run started a download: five clients asking at once for a new file made three upstream requests in one run of Clients_asking_at_once_share_one_download. The factory now makes a Lazy, of which only the one kept is ever started, and a download that begins just after another cached the file uses it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
PrivaPub
A self-hosted ActivityPub server in C# (.NET 10, MongoDB) where one private login owns several unlinkable public personas. It federates with Mastodon, GoToSocial, Pleroma/Akkoma, Misskey and Lemmy.
- Live: https://privapub.thepra.dev
- Client: decePubClient, https://decepub.thepra.dev
- Architecture, conventions and deploy: CLAUDE.md
- Decisions and the plan to full ActivityPub interop: docs/ROADMAP.md
dotnet build PrivaPub.sln -c Release
Releases
1
PrivaPub 1.26.0
Latest
Languages
C#
71.1%
Shell
21.5%
Python
6.9%
HTML
0.3%
Dockerfile
0.2%