1 !<arch> 2 __.PKGDEF 0 0 0 644 927 ` 3 go object darwin amd64 go1.8 X:framepointer 4 build id "539680dbe9b0fdb383d3ac5cd20d71e68a514c6c" 5 ---- 6 7 build id "539680dbe9b0fdb383d3ac5cd20d71e68a514c6c" 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 25832 ` 44 go object darwin amd64 go1.8 X:framepointer 45 build id "539680dbe9b0fdb383d3ac5cd20d71e68a514c6c" 46 ---- 47 48 49 ! 50 go17ldsync.a"".(*Group).Do*runtime.racefuncenter$sync.(*Mutex).Lock runtime.raceread0type.map[string]*"".call4runtime.mapaccess2_faststrtype."".call"runtime.newobject*sync.(*WaitGroup).Add"runtime.mapassign"runtime.racewrite(runtime.writeBarrier(sync.(*Mutex).Unlock$"".(*Group).doCall(runtime.racefuncexit.runtime.writebarrierptr,sync.(*WaitGroup).Waitruntime.makemap0runtime.morestack_noctxtoktype.bool.autotmp_13type.intctype.*"".call.autotmp_19.autotmp_18type.*int.autotmp_17type.*uint8.autotmp_16.autotmp_15.autotmp_14.autotmp_12type.**"".call.autotmp_11.autotmp_102type.*map[string]*"".call.autotmp_4type.stringsharederrtype.errorv"type.interface {}fnBtype.func() (interface {}, error)keygtype.*"".Group.fptype.uintptrTgclocals04b976d88f5a38f09de3d126701d93feTgclocals591a616696f0f7e116e1c9b5d6c520e7b$GOROOT/src/internal/singleflight/singleflight.go$"".(*Group).DoChan&type.chan "".Result runtime.makechan$runtime.panicslice*type.chan<- "".Result"runtime.growslice,runtime.racewriterange runtime.duffzero0type.[1]chan<- "".Result*"".(*Group).doCallfruntime.newproc.autotmp_40.autotmp_39.autotmp_36ch.autotmp_44.autotmp_43.autotmp_422type.*[1]chan<- "".Result.autotmp_41,type.*chan<- "".Result.autotmp_38.autotmp_370type.*[]chan<- "".Result.autotmp_35.autotmp_34.autotmp_33.autotmp_24~r2*type.<-chan "".ResultTgclocalsd0873d7cdfbff45b53cad34463092c3aTgclocals502529edd9c488a5e2626ae33a451046,sync.(*WaitGroup).Done"runtime.mapdelete"runtime.chansend1.autotmp_61.autotmp_60.autotmp_62.autotmp_59type.*error.autotmp_58.autotmp_57.autotmp_56.autotmp_55.autotmp_54$type.*interface {}.autotmp_47.autotmp_49type."".ResultTgclocals0d5f6fa73679b7fde5ae5ab7740c43d0Tgclocals99600c6bed96d96edce98ef159eddc73$"".(*Group).Forget.autotmp_63Tgclocals093d72ce5e8d4def2296140b9322b254Tgclocals87f6052ef51eed84352c5a7cd7c29d63"".init"".initdone"runtime.throwinitsync.initTgclocals33cdeccccebe80329f1fdbee7f5874cb(type..hash."".Result(runtime.nilinterhash"runtime.interhashruntime.memhashhptype.*"".ResultTgclocalse6397a44f8e1b6e77d0f200b4fba5269Tgclocals69c1753bd5f81501d95132d08af04464$type..eq."".Resultruntime.ifaceeqruntime.efaceeq.autotmp_73.autotmp_72.autotmp_71qTgclocalsb5c7440574e69788f4b5c44c58660c31Tgclocalscebf9419b90e46477aa4e5920f8669ae,go.info."".(*Group).Dogo.info.bool go.info.*"".callgo.info.uintptr"go.info.*"".Groupgo.info.stringHgo.info.func() (interface {}, error)(go.info.interface {}go.info.error4go.info."".(*Group).DoChan,go.info.chan "".Result0go.info.<-chan "".Result4go.info."".(*Group).doCall0go.info.chan<- "".Result4go.info."".(*Group).Forgetgo.info."".inittype.uint8"runtime.gcbits.01:type..namedata.*interface {}. runtime.algarray"runtime.gcbits.038go.info.type..hash."".Result$go.info.*"".Result4go.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.***"".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."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. eH%HD$H;AHH$H$H$H$H$H$H$HHH$HH$H$HHHH$HH$H$HHHL$H H$H$HT$H$H\$HD$ H$L$(L$7HH$H$HHD$HL$7HH$HD$HD$@H$HD$H$H$H$H$H$H$H$HHHL$H H$H$HL$HD$H$HH$H$ HL$@HH$H$H$H$HD$@HD$H$HL$H$HL$H$HL$ HD$@HH0H$HD$@HH0HL$8HP H$HD$@HHH$HD$@HHHL$xHPHT$pHX(H\$hH@ HD$`HD$pH$HD$xH$HD$`H$HD$hH$HD$8H$H$HH$HD$@HD$HL$@HH0HL$XHH$HD$HHH0HL$8HT$XH$HD$8HHL$HHA0H$H$HD$HH$HD$HHH H$HD$HHHH$HD$HHH HL$xHPHT$pHXH\$hH@(HD$`HD$hH$HD$pH$HD$xH$HD$`H$$H$HH H$HD$HD$HD$HD$ HD$PH$HH$uHD$PH$HAHH$H$HL$PHL$H$W 66 `/"5%bBOBBMLd 69 70 ;3-1G1Bmi 71 "bw> 72 eH%HD$H;AHH$H$H$H$HH$HD$H$HL$HL$`H$H$HHH$HH$H$HHHH$HH$H$HHHL$H H$H$HT$H$H\$HD$ H$L$(L$GHH$H$HHD$hL$GHH0H$HH$HD$hHH0HL$XH$H$HD$XHHL$hHA0HA8H$HH$HD$hHH@HPHHH)Hp8H(H$H\$XHL$PHQHT$HH9H<H$IL$HD$PHL$`H$HH$HH$HD$HHL$hHA@HD$XHAHu?H$HA8H$H$HD$`H$H$HH$H$H$HD$H$H$HD$`HD$HL$`H$?HH$Ht$HL$H\$HHL$ Ht$(HL$0H\$8HD$hHH$HD$HD$pHH$HD$PH|$pWHHl$Hl$HmHH$HD$H$HH$H$ HL$`HHT$pHZ8H$HH4$HD$pH@@H@H \H$HH8H$HD$H$H$H$H$H$H$H$HHHL$H H$H$HL$HD$H$HH$H$ HL$pHH$H$H$HD$HD$pHD$H$HD$ H$HD$(H$HD$0$(HHD$HD$`H$H$HH$HD$pHD$HL$pZH$H$H$HL$HD$pH$HL$`HL$H$HL$`H H$HD$HD$HD$HD$ HD$xH$HH$uHD$xH$HAHH$H$HL$xHL$H$ 89 /&# 91 92 5%bHTBOV" 93 d 95 97 ;6 5)]8>@) ) J=A1G1V 5 99 (=> 100 eH%HD$H;A7HH$H$H$H$H$HH$HHHL$hHH\$H\$`Ht$Ht$XH<$H|$PLD$LD$HH$HD$PH$HAHQ{HD$XHAHA HD$@HH$HD$HH$HA HQ(HD$`HA(H$H$H$H$HD$pH$HD$xH$HHH$H$HHHL$H H$HL$pHL$H$HH8H$H$HH8HP@HT$(1H\$ HL$8H96HH4$HD$8HHL$0H$H$H$H$H$HT$hHH$H$HHHPH$H$HL$@HH$H$HH(HP H$H$HH0H$H$HH0H$H H$HT$0HT$H$HT$HD$8HHHD$ HXH$HT$(H\$ HL$8H9H$H$H$HH$HD$`HD$H$H$HD$XHD$H$n@ 110 / ZX 112 ;AA5B@6ZC( 114 eH%H;aH0Hl$(Hl$(HD$0H$HD$8H$HD$@HD$HD$HHD$ HD$8HHH$HD$8HHHL$H H$HL$HL$HD$8H$Hl$(H0J`_!N 120 121 *68 122 eH%H;aHHl$Hl$HD$H$HHH$<vHl$HHHH$<uHHH$HH$Hl$H0 D i* 129 eH%H;aH(Hl$ Hl$ HD$(H$HD$0H$HL$8HL$HD$HL$0HQH$HD$HD$HL$0H H$HD$HD$HD$HD$8HD$8HD$@Hl$ H(KPO*Y( 133 eH%H;aHHHl$@Hl$@HD$HH$HD$XHH$HD$PHHT$XHZH\$8H2Ht$0H$HD$PHHHH\$0H91u\1u1D$/D$/D$`Hl$@HHHH H$HD$XHH H$HD$P@ HL$XI 8HL$XHQH$HD$PHHHT$XHZH\$8HrHt$0H$HD$PHHHPH\$8H9t1MH$HL$H\$HL$0HL$L$ HD$P!H$HL$H\$HL$8HL$L$ HD$Pb 140 *81 f;@ 141 144 "".(*Group).Dook~"c"c#2".fpx"gkey"fn"v "err0"shared" %% "".(*Group).DoChanok~"ch"c"c#3".fpx"gkey"fn"~r2 "<<"".(*Group).doCallch~".fpx"gc"key"fn """.(*Group).Forget.fpx"gkey""".init.fpx" *interface {}O6Wtype..hash."".Result.fpx"ph"~r2"type..eq."".Result.fpx"pq"~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 169 170 *[8]stringo6UUxUS>*[]*singleflight.call6*[8]*singleflight.callc 171 6@@s{%*map.bucket[string]*singleflight.callr6topbitskeysvaluesoverflow"*map.hdr[string]*singleflight.callEUh6,countflagsB noverflowhash0buckets 172 oldbuckets nevacuate00[ 173 (*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.ResultQh6r1syncH 177 x 178 180 181 " 188 $ &*(*,.02024 189 68:<><@o<B_<DOFH?FJ/LNPR*T`VX@Z\0^`Pbdfh0xTjlnpj 190 xrt 191 193 vxz | ~ 204 205 $ &P,(*...r0202 206 Fo<_O8?F/LP@\0^`Pbdfh0n 0 209 x 210 211 x 212 &P"..x<<<<oPO\@^` P02bdfh L@n 218 Vv 219 &0`P`Pbdfh n& 220 Vd|& fh 221 n 222 V&0P hhfhn 223 Vx&0!*<< *fh""nlDDjDDZ 0V8x888888888\\66Z(p8p^888888888@@((Z(8 ^888888Z 225 (8^8x88ZZZ"H8@ 226 pp0@P 227 `ZZ 228 0@P 229 XpZZ,<b8|888Z(8^8x888 00 233 pp0@P 234 `..pp 235 0@P 236 X`000@P 242 X 243 `p 244 ZV*>> 245 pp0@P 246 `<< 247 pp 248 0@P 249 X`xx 251 252 0@P 253 X`BB 255 pp0@P 256 `@@ 257 pp 258 0@P 259 X` 261 pp 262 0@P 263 X`x** 265 266 "0@P 271 X 272 2`p 273 ZV... 274 pp0@P 275 `F,,F 276 pp 277 0@P 278 X`22pp 280 0@P 281 XF` 283 pp0@P 284 ` 285 pp 286 0@P 287 X` 289 pp0@P 290 ` 291 0@P 293 X`p 295 pp0@P 296 ` 297 pp 298 0@P 299 X`P 301 pp0@P 302 ` 303 0@P 305 X`Pp00 307 pp0@P 308 ` 309 pp 310 0@P 311 X`222 313 pp0@P 314 ` 315 0@P 317 X`2pPP 319 pp0@P 320 ` 321 0@P 322 X`pJJ 324 pp0@P 325 ` 326 00@P 327 X`p.hBBL 329 pp0@P 330 ` 331 332 333 0@P 334 XL`Pp2,, 336 337 0@P 338 X 339 d`p 340 341 .. 342 pp0@P 343 `d@@ 344 pp0@P 345 `^^ 346 0@P 348 XpZV 350 pp0@P 351 ` 352 0@P 353 XpdP^ZV*<< 355 pp0@P 356 ` 357 358 0@P 359 X` 361 pp0@P 362 ` 363 0@P 364 XpdP^JJ 366 pp0@P 367 ` 368 0@P 370 XpdP 372 pp0@P 373 ` 374 0@P 375 Xpd2P^ 377 378 379 pp0@P 380 ` 381 0@P 382 XpP^ZV* 384 pp0@P 385 ` 386 0@P 387 XpP^ 389 pp0@P 390 ` 391 392 0@P 393 XpP 395 pp0@P 396 ` 397 0@P 398 Xp2P^d,0@P 400 X`p 402 403 000 404 00p0p 405 000 406 00088 407 pp0@P 408 `rr 409 410 0@P 411 X`DD 413 pp0@P 414 `BB 415 pp 416 0@P 417 X` 419 0@P 421 X`xpgo17ld