MCPcopy Create free account

hub / github.com/dustinxie/lockfree / functions

Functions81 in github.com/dustinxie/lockfree

↓ 14 callersMethodLock
call this before for k, v := range map
map.go:37
↓ 14 callersMethodUnlock
call this after for k, v := range map
map.go:40
↓ 10 callersMethodnext
()
hashmap/hashNode.go:44
↓ 9 callersFunctionmemhash
memhash computes the hash of 'size' bytes of memory at addr
hashmap/util.go:72
↓ 7 callersMethodGet
v, ok := map[key]
map.go:28
↓ 7 callersFunctionisFence
(n *hashNode)
hashmap/hashNode.go:36
↓ 6 callersMethodDeque
remove an item from the queue
queue.go:31
↓ 6 callersMethodLen
length of stack
stack.go:25
↓ 6 callersMethodLen
length of queue
queue.go:25
↓ 6 callersMethodPop
remove an item from the stack
stack.go:31
↓ 6 callersMethodSet
map[key] = value
map.go:31
↓ 6 callersMethodlinkTo
(next *hashNode)
hashmap/hashNode.go:40
↓ 4 callersMethodLen
len(map)
map.go:25
↓ 4 callersFunctionNewHashMap
NewHashMap creates a new hashmap
map.go:48
↓ 4 callersMethodget
(key interface{}, hash uint64)
hashmap/bucket.go:40
↓ 4 callersMethodhash
64-bit hash provides 2^32 collision-resistance, which suffices for most use-case
hashmap/util.go:31
↓ 3 callersMethodDel
delete(map, key)
map.go:34
↓ 3 callersMethodEnque
add an item to the queue
queue.go:28
↓ 3 callersMethodNext
returns next <k, v> in the map
map.go:43
↓ 3 callersMethodPush
add an item to the stack
stack.go:28
↓ 3 callersFunctioncasAddr
(addr *unsafe.Pointer, expected, target unsafe.Pointer)
list/node.go:41
↓ 3 callersMethoddel
(node *hashNode)
hashmap/bucket.go:84
↓ 3 callersMethodgetBucket
(hash uint64)
hashmap/hmap.go:150
↓ 3 callersMethodlast
last return the last node in the bucket
hashmap/bucket.go:53
↓ 3 callersFunctionnewBucket
(count uint32, hash uint64)
hashmap/bucket.go:29
↓ 3 callersMethodpivot
pivot returns the node with hash < input, and number of such nodes
hashmap/bucket.go:113
↓ 3 callersMethodsearch
search finds the position to insert or update the key
hashmap/bucket.go:98
↓ 3 callersMethodupsert
(node *hashNode)
hashmap/bucket.go:62
↓ 3 callersMethodvalue
()
list/node.go:29
↓ 3 callersMethodvalue
()
hashmap/hashNode.go:48
↓ 2 callersFunctionNew
New creates a new hashmap
hashmap/hmap.go:54
↓ 2 callersFunctionNewQueue
NewQueue creates a new queue
queue.go:36
↓ 2 callersFunctionNewQueue
NewQueue creates a new queue
list/queue.go:30
↓ 2 callersFunctionNewStack
NewStack creates a new stack
stack.go:39
↓ 2 callersFunctionNewStack
NewStack creates a new stack
list/stack.go:30
↓ 2 callersMethodPeek
return (but not remove) the top item on the stack
stack.go:34
↓ 2 callersMethodSum64
()
hashmap/hmap.go:39
↓ 2 callersMethodisOverflow
()
hashmap/hmap.go:101
↓ 2 callersMethodisUnderflow
()
hashmap/hmap.go:120
↓ 2 callersFunctionnewFence
()
hashmap/hashNode.go:32
↓ 2 callersMethodnext
()
list/node.go:33
↓ 2 callersMethodsplit
split breaks the bucket at the given hash, and returns the new bucket
hashmap/bucket.go:127
↓ 1 callersFunctionBucketSizeOption
BucketSizeOption sets the average size of bucket
hashmap/hmap.go:47
↓ 1 callersMethodcasNext
(expected, target unsafe.Pointer)
list/node.go:37
↓ 1 callersMethodcasNext
(expected, target unsafe.Pointer)
hashmap/hashNode.go:52
↓ 1 callersMethodcasValue
(expected, target unsafe.Pointer)
hashmap/hashNode.go:56
↓ 1 callersMethodexpand
()
hashmap/hmap.go:157
↓ 1 callersMethodinfo
()
hashmap/hmap.go:205
↓ 1 callersMethodmerge
merge merges 2 buckets into 1
hashmap/bucket.go:139
↓ 1 callersMethodshrink
()
hashmap/hmap.go:181
FunctionBenchmarkLockfreeHashMap
(b *testing.B)
map_test.go:53
FunctionBenchmarkLockfreeQueue
(b *testing.B)
queue_test.go:55
FunctionBenchmarkLockfreeStack
(b *testing.B)
stack_test.go:55
FunctionBenchmarkMapAndRWMutex
(b *testing.B)
map_test.go:82
FunctionBenchmarkQueueAndRWMutex
(b *testing.B)
queue_test.go:75
FunctionBenchmarkStackAndRWMutex
(b *testing.B)
stack_test.go:75
FunctionBenchmarkSyncMap
(b *testing.B)
map_test.go:118
MethodDel
(key interface{})
hashmap/hmap.go:105
MethodDeque
()
list/queue.go:57
MethodEnque
(v interface{})
list/queue.go:42
MethodGet
(key interface{})
hashmap/hmap.go:80
MethodLen
()
list/stack.go:37
MethodLen
()
list/queue.go:38
MethodLen
()
hashmap/hmap.go:76
MethodLock
()
hashmap/hmap.go:125
MethodNext
()
hashmap/hmap.go:135
MethodPeek
()
list/stack.go:71
MethodPop
()
list/stack.go:56
MethodPush
(v interface{})
list/stack.go:41
MethodSet
(key, value interface{})
hashmap/hmap.go:85
MethodSum64
()
hashmap/util_test.go:68
FunctionTestBucket
(t *testing.T)
hashmap/bucket_test.go:25
FunctionTestHash
(t *testing.T)
hashmap/util_test.go:23
FunctionTestHmap
(t *testing.T)
hashmap/hmap_test.go:23
FunctionTestNewHashMap
(t *testing.T)
map_test.go:26
FunctionTestNewQueue
(t *testing.T)
queue_test.go:25
FunctionTestNewStack
(t *testing.T)
stack_test.go:25
FunctionTestQueue
(t *testing.T)
list/queue_test.go:23
FunctionTestStack
(t *testing.T)
list/stack_test.go:23
MethodUnlock
()
hashmap/hmap.go:131
Methodsize
()
hashmap/bucket.go:36