| CARVIEW |
Select Language
HTTP/2 200
date: Tue, 30 Dec 2025 11:30:34 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"2cdaa1e156d9b356ddc4e0995fe0ab70"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=vAv90lH7GjnUtIE6Eo66D5ujCluccaBqQWpNY5aeZ%2FZA3KPquf%2FhhYaw0o3m199Jt2m2AWVqNW0YM%2FCMTadjIzgWABIkdpppip4OuUUfkeaoip0wctuu0WDwTBJxRQb2CvA3NYmMp2NizJxFgN6dtJ6n%2B1wdviABW%2FgzvmgBOjkqklfR220cDLssdTGBCJCIiYkkbLDRfZ9w454L5vzeMJSCnvDcog0fCwKkZQl4cPpXOqayXv5HCC0HmxjvYaPQnoJFVslAaiPNewYqPr9x8w%3D%3D--J%2Bj97kbcmYEHZHS8--cRw7pzEHwFLqH99twccG4w%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1171569585.1767094233; Path=/; Domain=github.com; Expires=Wed, 30 Dec 2026 11:30:33 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Wed, 30 Dec 2026 11:30:33 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: B80E:12322B:88AF40:953EA4:6953B7D9
SingletonCache · bitfaster/BitFaster.Caching Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 39
SingletonCache
Alex Peck edited this page Sep 20, 2022
·
3 revisions
SingletonCache enables mapping every key to a single instance of a value and keeps the value alive only while it is in use. This is useful for caching lock objects or semaphores, where a bounded cache may remove an item while in use resulting in an invalid program state. SingletonCache can be used when the total number of keys is large, but few will be in use at any moment.
SingletonCache doesn't implement the common cache interface and instead provides a simple Acquire then dispose API. The example below shows how to implement exclusive Url access using a lock object per Url:
var uriLocks = new SingletonCache<Uri, object>();
Uri uri = new Uri("https://foo.com");
using (var lifetime = uriLocks.Acquire(uri))
{
lock (lifetime.Value)
{
// exclusive uri access
}
}
You can’t perform that action at this time.