bcache
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package bcache implements a GC-friendly cache (seeCache) for BoringCrypto.
Index¶
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeCache¶
type Cache[K, Vany] struct {// contains filtered or unexported fields}
A Cache is a GC-friendly concurrent map from unsafe.Pointer tounsafe.Pointer. It is meant to be used for maintaining shadowBoringCrypto state associated with certain allocated structs, inparticular public and private RSA and ECDSA keys.
The cache is GC-friendly in the sense that the keys do notindefinitely prevent the garbage collector from collecting them.Instead, at the start of each GC, the cache is cleared entirely. Thatis, the cache is lossy, and the loss happens at the start of each GC.This means that clients need to be able to cope with cache entriesdisappearing, but it also means that clients don't need to worry aboutcache entries keeping the keys from being collected.
func (*Cache[K, V])Clear¶
func (c *Cache[K, V]) Clear()
Clear clears the cache.The runtime does this automatically at each garbage collection;this method is exposed only for testing.
func (*Cache[K, V])Get¶
func (c *Cache[K, V]) Get(k *K) *V
Get returns the cached value associated with v,which is either the value v corresponding to the most recent call to Put(k, v)or nil if that cache entry has been dropped.