diff options
author | 2025-03-09 17:47:56 +0100 | |
---|---|---|
committer | 2025-03-10 01:59:49 +0100 | |
commit | 3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch) | |
tree | f61faa581feaaeaba2542b9f2b8234a590684413 /vendor/codeberg.org/gruf/go-mutexes/hash_map.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/codeberg.org/gruf/go-mutexes/hash_map.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-mutexes/hash_map.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/vendor/codeberg.org/gruf/go-mutexes/hash_map.go b/vendor/codeberg.org/gruf/go-mutexes/hash_map.go deleted file mode 100644 index a177133b5..000000000 --- a/vendor/codeberg.org/gruf/go-mutexes/hash_map.go +++ /dev/null @@ -1,56 +0,0 @@ -package mutexes - -type hashmap struct { - m map[string]*rwmutex - n int -} - -func (m *hashmap) init(cap int) { - m.m = make(map[string]*rwmutex, cap) - m.n = cap -} - -func (m *hashmap) Get(key string) *rwmutex { return m.m[key] } - -func (m *hashmap) Put(key string, mu *rwmutex) { - m.m[key] = mu - if n := len(m.m); n > m.n { - m.n = n - } -} - -func (m *hashmap) Delete(key string) { - delete(m.m, key) -} - -func (m *hashmap) Compact() { - // Noop when hashmap size - // is too small to matter. - if m.n < 2048 { - return - } - - // Difference between maximum map - // size and the current map size. - diff := m.n - len(m.m) - - // Maximum load factor before - // runtime allocates new hmap: - // maxLoad = 13 / 16 - // - // So we apply the inverse/2, once - // $maxLoad/2 % of hmap is empty we - // compact the map to drop buckets. - if 2*16*diff > m.n*13 { - - // Create new map only as big as required. - m2 := make(map[string]*rwmutex, len(m.m)) - for k, v := range m.m { - m2[k] = v - } - - // Set new. - m.m = m2 - m.n = len(m2) - } -} |