Source file
src/sync/export_test.go
1
2
3
4
5 package sync
6
7
8 var Runtime_Semacquire = runtime_Semacquire
9 var Runtime_Semrelease = runtime_Semrelease
10 var Runtime_procPin = runtime_procPin
11 var Runtime_procUnpin = runtime_procUnpin
12
13
14 type PoolDequeue interface {
15 PushHead(val any) bool
16 PopHead() (any, bool)
17 PopTail() (any, bool)
18 }
19
20 func NewPoolDequeue(n int) PoolDequeue {
21 d := &poolDequeue{
22 vals: make([]eface, n),
23 }
24
25
26 d.headTail = d.pack(1<<dequeueBits-500, 1<<dequeueBits-500)
27 return d
28 }
29
30 func (d *poolDequeue) PushHead(val any) bool {
31 return d.pushHead(val)
32 }
33
34 func (d *poolDequeue) PopHead() (any, bool) {
35 return d.popHead()
36 }
37
38 func (d *poolDequeue) PopTail() (any, bool) {
39 return d.popTail()
40 }
41
42 func NewPoolChain() PoolDequeue {
43 return new(poolChain)
44 }
45
46 func (c *poolChain) PushHead(val any) bool {
47 c.pushHead(val)
48 return true
49 }
50
51 func (c *poolChain) PopHead() (any, bool) {
52 return c.popHead()
53 }
54
55 func (c *poolChain) PopTail() (any, bool) {
56 return c.popTail()
57 }
58
View as plain text