1 !<arch> 2 __.PKGDEF 0 0 0 644 926 ` 3 go object linux amd64 go1.8 X:framepointer 4 build id "fcb88e50759b6b8b092460e6ccaa4f4945cb0486" 5 ---- 6 7 build id "fcb88e50759b6b8b092460e6ccaa4f4945cb0486" 8 9 $$B 10 version 3 11 12 singleflight a|SGOROOT/src/internal/singleflight/singleflight.go Groupmu ) Mutexsync statesemaLock>m1Unlock>,m 6call 18 Ywg WaitGroupnoCopy Dstate1"AddB wg1delta2DoneB&WaitB&B wg2esc:0x12valerr& 23 dups chans ResultmValErr&SharedDo<g4 key5& fn6 esc:0x9v1&err2shared3,DoChan<g2 key3& fn4FLForget<g1 key2 esc:0x1doCall<\@c2 V`&XJF (init6zXX6t." 39 % 40 %XX6t."XX6t." 41 % 42 $$ 43 _go_.o 0 0 0 644 22347 ` 44 go object linux amd64 go1.8 X:framepointer 45 build id "fcb88e50759b6b8b092460e6ccaa4f4945cb0486" 46 ---- 47 48 49 ! 50 go17ldsync.a"".(*Group).Do$sync.(*Mutex).Lock0type.map[string]*"".call4runtime.mapaccess2_faststrtype."".call"runtime.newobject*sync.(*WaitGroup).Add"runtime.mapassign(runtime.writeBarrier(sync.(*Mutex).Unlock$"".(*Group).doCall.runtime.writebarrierptr,sync.(*WaitGroup).Waitruntime.makemap0runtime.morestack_noctxtctype.*"".call.autotmp_3type.stringsharedtype.boolerrtype.errorv"type.interface {}fnBtype.func() (interface {}, error)keygtype.*"".GroupTgclocalsfdbb7fa57e60ee93f71535e25ceb0fbdTgclocalsde76aa450da4659dfb039f4c379e0dabb$GOROOT/src/internal/singleflight/singleflight.go$"".(*Group).DoChan&type.chan "".Result runtime.makechan*type.chan<- "".Result"runtime.growslice0type.[1]chan<- "".Result*"".(*Group).doCallfruntime.newproc.autotmp_20type.intch.autotmp_212type.*[1]chan<- "".Result.autotmp_190type.*[]chan<- "".Result.autotmp_12~r2*type.<-chan "".ResultTgclocalsc926bc026b533f217305784085000aedTgclocals29b4bfe25123d32c23ea85c741883e20,sync.(*WaitGroup).Done"runtime.mapdelete"runtime.chansend1.autotmp_34.autotmp_33.autotmp_35,type.*chan<- "".Result.autotmp_32type.*uint8.autotmp_31.autotmp_22.autotmp_24type."".ResultTgclocalsda2fb67d9d276865d89fa82bcb3b6698Tgclocalsdc4b38b344b8dd03c426938c2c416f4c$"".(*Group).Forget.autotmp_36Tgclocals093d72ce5e8d4def2296140b9322b254Tgclocals87f6052ef51eed84352c5a7cd7c29d63"".init"".initdone"runtime.throwinitsync.initTgclocals33cdeccccebe80329f1fdbee7f5874cb(type..hash."".Result(runtime.nilinterhash"runtime.interhashruntime.memhashtype.uintptrhptype.*"".ResultTgclocalse6397a44f8e1b6e77d0f200b4fba5269Tgclocals69c1753bd5f81501d95132d08af04464$type..eq."".Resultruntime.ifaceeqruntime.efaceeqqTgclocals8f9cec06d1ae35cc9900c511c5e4bdab,go.info."".(*Group).Do go.info.*"".call"go.info.*"".Groupgo.info.stringHgo.info.func() (interface {}, error)(go.info.interface {}go.info.errorgo.info.bool4go.info."".(*Group).DoChan,go.info.chan "".Result0go.info.<-chan "".Result4go.info."".(*Group).doCall4go.info."".(*Group).Forgetgo.info."".inittype.uint8"runtime.gcbits.01:type..namedata.*interface {}.$type.*interface {} runtime.algarray"runtime.gcbits.038go.info.type..hash."".Result$go.info.*"".Resultgo.info.uintptr4go.info.type..eq."".Result0type..hashfunc."".Result,type..eqfunc."".Result&type..alg."".ResultJtype..namedata.**singleflight.Result. type.**"".ResultHtype..namedata.*singleflight.Result."runtime.gcbits.0f(type..importpath."".&type..namedata.Val.&type..namedata.Err.,type..namedata.Shared.Xtype..namedata.**chan<- singleflight.Result..type.**chan<- "".ResultVtype..namedata.*chan<- singleflight.Result.\type..namedata.**[]chan<- singleflight.Result.2type.**[]chan<- "".ResultZtype..namedata.*[]chan<- singleflight.Result..type.[]chan<- "".Result"runtime.gcbits.bcDtype..namedata.*singleflight.call.$type..namedata.wg.&type..namedata.val.&type..namedata.err.(type..namedata.dups.*type..namedata.chans.&type.sync.WaitGroupHtype..namedata.***singleflight.call.type.***"".calltype.**"".callFtype..namedata.**singleflight.call.0type..namedata.*[]uint8.type.*[]uint8type.[]uint82type..namedata.*[8]uint8.type.*[8]uint8type.[8]uint8runtime.gcbits.2type..namedata.*[]string.type.*[]stringtype.[]string4type..namedata.*[8]string.type.*[8]string(type.noalg.[8]string&runtime.gcbits.5555Jtype..namedata.*[]*singleflight.call. type.*[]*"".calltype.[]*"".callLtype..namedata.*[8]*singleflight.call."type.*[8]*"".call,type.noalg.[8]*"".call"runtime.gcbits.ffjtype..namedata.*map.bucket[string]*singleflight.call.@type.*map.bucket[string]*"".callJtype.noalg.map.bucket[string]*"".call.runtime.gcbits.aaaafe03$type..importpath...type..namedata.topbits.(type..namedata.keys.,type..namedata.values.0type..namedata.overflow.dtype..namedata.*map.hdr[string]*singleflight.call.:type.*map.hdr[string]*"".callDtype.noalg.map.hdr[string]*"".call"runtime.gcbits.2c*type..namedata.count.*type..namedata.flags."type..namedata.B.2type..namedata.noverflow.*type..namedata.hash0..type..namedata.buckets.4type..namedata.oldbuckets.2type..namedata.nevacuate.type.uint16type.uint32&type.unsafe.Pointer\type..namedata.*map[string]*singleflight.call.2type.*map[string]*"".call"runtime.gcbits.02Ftype..namedata.*singleflight.Group.$type..namedata.mu."type..namedata.m.type."".Grouptype.sync.MutexHtype..namedata.**singleflight.Group.type.**"".GroupZtype..namedata.*func() (interface {}, error).Dtype.*func() (interface {}, error)type..namedata.*func(*singleflight.Group, string, func() (interface {}, error)) (interface {}, error, bool).type.*func(*"".Group, string, func() (interface {}, error)) (interface {}, error, bool)type.func(*"".Group, string, func() (interface {}, error)) (interface {}, error, bool)Vtype..namedata.*<-chan singleflight.Result.,type.*<-chan "".Resulttype..namedata.*func(*singleflight.Group, string, func() (interface {}, error)) <-chan singleflight.Result.type.*func(*"".Group, string, func() (interface {}, error)) <-chan "".Resulttype.func(*"".Group, string, func() (interface {}, error)) <-chan "".Resultdtype..namedata.*func(*singleflight.Group, string).:type.*func(*"".Group, string)8type.func(*"".Group, string)type..namedata.*func(*singleflight.Group, *singleflight.call, string, func() (interface {}, error)).type.*func(*"".Group, *"".call, string, func() (interface {}, error))type.func(*"".Group, *"".call, string, func() (interface {}, error))$type..namedata.Do.type..namedata.*func(string, func() (interface {}, error)) (interface {}, error, bool).type.*func(string, func() (interface {}, error)) (interface {}, error, bool)type.func(string, func() (interface {}, error)) (interface {}, error, bool),type..namedata.DoChan.type..namedata.*func(string, func() (interface {}, error)) <-chan singleflight.Result.type.*func(string, func() (interface {}, error)) <-chan "".Resulttype.func(string, func() (interface {}, error)) <-chan "".Result,type..namedata.Forget.:type..namedata.*func(string).$type.*func(string)"type.func(string),type..namedata.doCall.type..namedata.*func(*singleflight.call, string, func() (interface {}, error)).ttype.*func(*"".call, string, func() (interface {}, error))rtype.func(*"".call, string, func() (interface {}, error))Rtype..namedata.*chan singleflight.Result.(type.*chan "".Result^type..namedata.**[1]chan<- singleflight.Result.4type.**[1]chan<- "".Result\type..namedata.*[1]chan<- singleflight.Result.,type..importpath.sync.PdH%H;aHXHl$PHl$PHD$`H$HD$`HHHHHHL$H H$HT$hHT$H\$pH\$HD$ L$(HHD$86HH$HD$HD$0H$HD$HD$hHD$@HL$pHL$HHT$`HZH\$HH$H\$@H\$HD$ HL$0HHD$`H$HD$`H$HD$0HD$HL$hHL$HL$pHL$HL$xHL$ HD$0HHHPHX(Hp H@0H$H$H$H$H$Hl$PHXH$HD$0HD$HL$0OHH0HHH0HL$`H$HD$8H$HD$8HHHPHX H@(H$H$H$H$$Hl$PHXH H$HD$HD$HD$HD$ HT$`HZuHBHH$HD$HT$`bd 62 `! 7"06PGG 66 ,<+6c#> 67 dH%HD$H;AHH$H$HH$HD$H$HL$HL$HH$H$HHH"HHHL$H H$H$HT$H$H\$HD$ L$(HHD$P 71 HH0HHH0HH@HP8HXHHp8Ht$hHyH9gHYHX@Hu7HD$HHH$H$HD$HH$H$HH$HD$HHD$HD$HLL$HT$HL$H\$H|$ HD$(HL$0HL$@HT$8H\$PHSHuHC8HS8H>HT$hH$HD$HL$@H\$PHH$HD$HD$XH H$HD$HD$` gHL$HHHT$XHB@HBHHr8HB8H$HD$H$HD$pH$HL$xH$HZH\$HH$H\$pH\$HD$ HL$XHH$H$H$HD$HD$XHD$H$HD$ H$HD$(H$HD$0$(HHD$HD$HH$H$HH$HD$XHD$HL$X_H4$HD$HL$HHT$XH$HL$HHL$HD$`HL$HH H$HD$HD$HD$HD$ H$HZuHBHH$HD$H$ 81 / 82 83 ==zw+0V 86 J 88 90 C0+J 91 .V0":D 93 dH%HD$H;AHH$H$H$HHD$HD$@HL$H$Ht$Ht$8H$H_LGHOHw HW(eHG(H<$H$H$H$HD$HH$HD$PH$HHHL$H H$HL$HHL$H$HH@HL$(HP81H\$ HT$0H9H2HD$XHD$`HD$hHD$pHD$xHxL@LD$XH|$`Hx(L@ LD$hH|$pHx0H@@|$xH=H<$Ht$Ht$XHt$HD$0HPHD$ HXH$HL$(H\$ HT$0H9KH$H$H$HH$HD$H$L$HL$HD$@Ht$8H$E@ 98 /f E- % 100 :C 101 dH%H;avtH0Hl$(Hl$(HD$8H$HD$@HD$HD$HHD$ HD$8HHHL$H H$HL$HL$HD$8H$Hl$(H0s`o_< 106 107 (< 108 dH%H;avEHH,$H,$<v H,$HuH,$H$[[1#dH%H;av{H(Hl$ Hl$ HD$0H$HL$8HL$HD$HL$0HQH$HD$HD$HL$0H H$HD$HD$HD$HD$@Hl$ H(lPvO0A 114 dH%H;aH0Hl$(Hl$(HD$@HHHT$8HZH2H8H9tm1tcHJHZHpHxH9t%1tJ @ 8D$HHl$(H01H$HL$H|$Ht$L$ HD$@HT$81H4$H\$H|$HL$L$ HD$@HT$8i`b_`]_ 116 F 117 "".(*Group).DocP"c#1X"gkey"fn"v "err0"shared" % "".(*Group).DoChanch"c@"c#2H"gkey"fn"~r2 " 127 "".(*Group).doCallgc"key"fn """.(*Group).Forgetgkey""".init *interface {}O6Wtype..hash."".Resultph"~r2"type..eq."".Resultpq"~r2"**singleflight.Result6*singleflight.ResultU16internal/singleflightValErrShared( HYX **chan<- singleflight.ResultP6*chan<- singleflight.Result9GP6 n2**[]chan<- singleflight.ResultA 6*[]chan<- singleflight.Result}x61>q*singleflight.callwgvalerrdupschansP@a# 08***singleflight.call6**singleflight.call"h'6d6*[]uint8i6~.8 *[8]uint8z6>0 *[]string"v6 129 130 *[8]stringo6UUxUS>*[]*singleflight.call6*[8]*singleflight.callc 131 6@@s{%*map.bucket[string]*singleflight.callr6topbitskeysvaluesoverflow"*map.hdr[string]*singleflight.callEUh6,countflagsB noverflowhash0buckets 132 oldbuckets nevacuate00[ 133 (*map[string]*singleflight.call=cI65*singleflight.Groupmum6&@**singleflight.GroupnQ6*func() (interface {}, error)6j/3\*func(*singleflight.Group, string, func() (interface {}, error)) (interface {}, error, bool)6<63*<-chan singleflight.ResultF602[*func(*singleflight.Group, string, func() (interface {}, error)) <-chan singleflight.ResultsK6y3"*func(*singleflight.Group, string)+=s6^]3T*func(*singleflight.Group, *singleflight.call, string, func() (interface {}, error))6"{3DoG*func(string, func() (interface {}, error)) (interface {}, error, bool)c')6Oz)3DoChanF*func(string, func() (interface {}, error)) <-chan singleflight.ResultTFg6=@3Forget *func(string)iHJ^63doCall?*func(*singleflight.call, string, func() (interface {}, error))D_6f36*chan singleflight.ResultE6U;2**[1]chan<- singleflight.Result6*[1]chan<- singleflight.ResultQh6r1sync 137 138 ( 139 Z 140 142 143 ?" /"$&(*,`.0@24068&:<.j.>@BDD 144 dFHJL 145 N 148 149 150 PR PTVXoF _" O"Z?\^/`b&d@f4068&:<0JhjB 156 tlnJpPrVtVvxz|~|o&O4@68 & ":< F&B 158 Rn0`&8&:<B 159 <dtB 160 161 b0Pd B 162 0`d *B@>$$Z 0 163 R8v8888888j""h""Z(D8D^8~888888((Z(8 T8t888Z(8T8x8Z66"@P 165 pp0@P 166 `22 167 0@P 168 Xp2Z 170 ,<X8x88Z 171 (8T8t88 00 172 pp0@P 173 `..pp 174 0@P 175 X`000@P 181 X 182 `p 183 2.*>> 184 pp0@P 185 `x<<x 186 pp 187 0@P 188 X`JJ 190 191 0@P 192 Xx`BB 194 pp0@P 195 ``@@` 196 pp 197 0@P 198 X` 200 pp 201 0@P 202 X``J** 204 205 210 "0@P 211 X 212 "`p 213 214 2.V.. 215 pp0@P 216 `,, 217 pp 218 0@P 219 X`""pp 221 0@P 222 X` 224 225 pp0@P 226 ` 227 pp 228 0@P 229 X` 231 pp0@P 232 ` 233 0@P 235 X`p 237 pp0@P 238 ` 239 pp 240 0@P 241 X`& 243 pp0@P 244 ` 245 0@P 247 X`&p00 249 pp0@P 250 ` 251 pp 252 0@P 253 X`"22 255 pp0@P 256 ` 257 0@P 259 X`"pPP 261 pp0@P 262 ` 263 0@P 264 X`pJJ 266 pp0@P 267 ` 268 00@P 269 X`pVBB 271 pp0@P 272 ` 273 0@P 274 X`&p",, 276 277 0@P 278 X 279 <`p 280 .. 281 pp0@P 282 `<@@ 283 pp0@P 284 `66 285 0@P 287 Xp2. 289 pp0@P 290 ` 291 0@P 292 Xp<&62.*<< 294 pp0@P 295 `ff 296 297 0@P 298 X` 300 pp0@P 301 ` 302 0@P 303 Xp<&6fJJ 305 pp0@P 306 ` 307 0@P 309 Xp<& 311 pp0@P 312 ` 313 0@P 314 Xp<"&6 316 317 318 pp0@P 319 ` 320 0@P 321 Xp&62.* 323 pp0@P 324 ` 325 0@P 326 Xp&6f 328 pp0@P 329 ` 330 331 0@P 332 Xp& 334 pp0@P 335 ` 336 0@P 337 Xp"&6<,0@P 339 X`p 341 342 000 343 00D0D 344 000 345 00088 346 pp0@P 347 `FF 348 349 0@P 350 X`DD 352 pp0@P 353 `\BB\ 354 pp 355 0@P 356 X`NN 358 0@P 360 X\`Jpgo17ld