]> Cypherpunks.ru repositories - gostls13.git/blob - src/runtime/lockrank.go
4d661e93dcd5c6d174987084d13983d248673d3a
[gostls13.git] / src / runtime / lockrank.go
1 // Code generated by mklockrank.go; DO NOT EDIT.
2
3 package runtime
4
5 type lockRank int
6
7 // Constants representing the ranks of all non-leaf runtime locks, in rank order.
8 // Locks with lower rank must be taken before locks with higher rank,
9 // in addition to satisfying the partial order in lockPartialOrder.
10 // A few ranks allow self-cycles, which are specified in lockPartialOrder.
11 const (
12         lockRankUnknown lockRank = iota
13
14         lockRankSysmon
15         lockRankScavenge
16         lockRankForcegc
17         lockRankDefer
18         lockRankSweepWaiters
19         lockRankAssistQueue
20         lockRankSweep
21         lockRankPollDesc
22         lockRankCpuprof
23         lockRankSched
24         lockRankAllg
25         lockRankAllp
26         lockRankTimers
27         lockRankNetpollInit
28         lockRankHchan
29         lockRankNotifyList
30         lockRankSudog
31         lockRankRwmutexW
32         lockRankRwmutexR
33         lockRankRoot
34         lockRankItab
35         lockRankReflectOffs
36         lockRankUserArenaState
37         // TRACEGLOBAL
38         lockRankTraceBuf
39         lockRankTraceStrings
40         // MALLOC
41         lockRankFin
42         lockRankSpanSetSpine
43         lockRankMspanSpecial
44         // MPROF
45         lockRankGcBitsArenas
46         lockRankProfInsert
47         lockRankProfBlock
48         lockRankProfMemActive
49         lockRankProfMemFuture
50         // STACKGROW
51         lockRankGscan
52         lockRankStackpool
53         lockRankStackLarge
54         lockRankHchanLeaf
55         // WB
56         lockRankWbufSpans
57         lockRankMheap
58         lockRankMheapSpecial
59         lockRankGlobalAlloc
60         // TRACE
61         lockRankTrace
62         lockRankTraceStackTab
63         lockRankPanic
64         lockRankDeadlock
65         lockRankRaceFini
66 )
67
68 // lockRankLeafRank is the rank of lock that does not have a declared rank,
69 // and hence is a leaf lock.
70 const lockRankLeafRank lockRank = 1000
71
72 // lockNames gives the names associated with each of the above ranks.
73 var lockNames = []string{
74         lockRankSysmon:         "sysmon",
75         lockRankScavenge:       "scavenge",
76         lockRankForcegc:        "forcegc",
77         lockRankDefer:          "defer",
78         lockRankSweepWaiters:   "sweepWaiters",
79         lockRankAssistQueue:    "assistQueue",
80         lockRankSweep:          "sweep",
81         lockRankPollDesc:       "pollDesc",
82         lockRankCpuprof:        "cpuprof",
83         lockRankSched:          "sched",
84         lockRankAllg:           "allg",
85         lockRankAllp:           "allp",
86         lockRankTimers:         "timers",
87         lockRankNetpollInit:    "netpollInit",
88         lockRankHchan:          "hchan",
89         lockRankNotifyList:     "notifyList",
90         lockRankSudog:          "sudog",
91         lockRankRwmutexW:       "rwmutexW",
92         lockRankRwmutexR:       "rwmutexR",
93         lockRankRoot:           "root",
94         lockRankItab:           "itab",
95         lockRankReflectOffs:    "reflectOffs",
96         lockRankUserArenaState: "userArenaState",
97         lockRankTraceBuf:       "traceBuf",
98         lockRankTraceStrings:   "traceStrings",
99         lockRankFin:            "fin",
100         lockRankSpanSetSpine:   "spanSetSpine",
101         lockRankMspanSpecial:   "mspanSpecial",
102         lockRankGcBitsArenas:   "gcBitsArenas",
103         lockRankProfInsert:     "profInsert",
104         lockRankProfBlock:      "profBlock",
105         lockRankProfMemActive:  "profMemActive",
106         lockRankProfMemFuture:  "profMemFuture",
107         lockRankGscan:          "gscan",
108         lockRankStackpool:      "stackpool",
109         lockRankStackLarge:     "stackLarge",
110         lockRankHchanLeaf:      "hchanLeaf",
111         lockRankWbufSpans:      "wbufSpans",
112         lockRankMheap:          "mheap",
113         lockRankMheapSpecial:   "mheapSpecial",
114         lockRankGlobalAlloc:    "globalAlloc",
115         lockRankTrace:          "trace",
116         lockRankTraceStackTab:  "traceStackTab",
117         lockRankPanic:          "panic",
118         lockRankDeadlock:       "deadlock",
119         lockRankRaceFini:       "raceFini",
120 }
121
122 func (rank lockRank) String() string {
123         if rank == 0 {
124                 return "UNKNOWN"
125         }
126         if rank == lockRankLeafRank {
127                 return "LEAF"
128         }
129         if rank < 0 || int(rank) >= len(lockNames) {
130                 return "BAD RANK"
131         }
132         return lockNames[rank]
133 }
134
135 // lockPartialOrder is the transitive closure of the lock rank graph.
136 // An entry for rank X lists all of the ranks that can already be held
137 // when rank X is acquired.
138 //
139 // Lock ranks that allow self-cycles list themselves.
140 var lockPartialOrder [][]lockRank = [][]lockRank{
141         lockRankSysmon:         {},
142         lockRankScavenge:       {lockRankSysmon},
143         lockRankForcegc:        {lockRankSysmon},
144         lockRankDefer:          {},
145         lockRankSweepWaiters:   {},
146         lockRankAssistQueue:    {},
147         lockRankSweep:          {},
148         lockRankPollDesc:       {},
149         lockRankCpuprof:        {},
150         lockRankSched:          {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof},
151         lockRankAllg:           {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched},
152         lockRankAllp:           {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched},
153         lockRankTimers:         {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers},
154         lockRankNetpollInit:    {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers},
155         lockRankHchan:          {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan},
156         lockRankNotifyList:     {},
157         lockRankSudog:          {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan, lockRankNotifyList},
158         lockRankRwmutexW:       {},
159         lockRankRwmutexR:       {lockRankSysmon, lockRankRwmutexW},
160         lockRankRoot:           {},
161         lockRankItab:           {},
162         lockRankReflectOffs:    {lockRankItab},
163         lockRankUserArenaState: {},
164         lockRankTraceBuf:       {lockRankSysmon, lockRankScavenge},
165         lockRankTraceStrings:   {lockRankSysmon, lockRankScavenge, lockRankTraceBuf},
166         lockRankFin:            {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
167         lockRankSpanSetSpine:   {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
168         lockRankMspanSpecial:   {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
169         lockRankGcBitsArenas:   {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankMspanSpecial},
170         lockRankProfInsert:     {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
171         lockRankProfBlock:      {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
172         lockRankProfMemActive:  {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings},
173         lockRankProfMemFuture:  {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankProfMemActive},
174         lockRankGscan:          {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture},
175         lockRankStackpool:      {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan},
176         lockRankStackLarge:     {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan},
177         lockRankHchanLeaf:      {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankHchanLeaf},
178         lockRankWbufSpans:      {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan},
179         lockRankMheap:          {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans},
180         lockRankMheapSpecial:   {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap},
181         lockRankGlobalAlloc:    {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap, lockRankMheapSpecial},
182         lockRankTrace:          {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap},
183         lockRankTraceStackTab:  {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankSpanSetSpine, lockRankMspanSpecial, lockRankGcBitsArenas, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap, lockRankTrace},
184         lockRankPanic:          {},
185         lockRankDeadlock:       {lockRankPanic, lockRankDeadlock},
186         lockRankRaceFini:       {lockRankPanic},
187 }