1 !<arch> 2 __.PKGDEF 0 0 0 644 899 ` 3 go object linux amd64 go1.10 X:framepointer 4 build id "f6AqQPnqMLGM25WAc51L/nfe4LFewrl-8uEhDGUG6" 5 ---- 6 7 build id "f6AqQPnqMLGM25WAc51L/nfe4LFewrl-8uEhDGUG6" 8 9 $$B 10 version 5 11 12 singleflight : |SGOROOTsrcinternalsingleflight.go Groupmu 2syncmutex.go Mutex statesemaLock>m1Unlock>,m %call 18 wg (waitgroup.goWaitGroupnoCopy cond.go*D6state1"AddB wg1delta2DoneB2WaitB2B wg2esc:0x12valerr& 24 dups chans ResultValErr&SharedDo<g4 key5& fn6 esc:0x9v1&err2shared30DoChan<g3 key4& fn5FLForget<g1 key2 esc:0x1doCall<h@c2 key3l& fn4VF <autogenerated>init 40 $$ 41 _go_.o 0 0 0 644 24484 ` 42 go object linux amd64 go1.10 X:framepointer 43 build id "f6AqQPnqMLGM25WAc51L/nfe4LFewrl-8uEhDGUG6" 44 ---- 45 46 47 ! 48 go19ldsync"".(*Group).Do*runtime.racefuncenter$sync.(*Mutex).Lock runtime.raceread0type.map[string]*"".call4runtime.mapaccess2_faststrtype."".call"runtime.newobject*sync.(*WaitGroup).Add2runtime.mapassign_faststr"runtime.racewrite(runtime.writeBarrier(sync.(*Mutex).Unlock$"".(*Group).doCall(runtime.racefuncexit,runtime.gcWriteBarrier,sync.(*WaitGroup).Wait*runtime.makemap_small0runtime.morestack_noctxt.fptype.uintptrgtype.*"".Groupkeytype.stringfnBtype.func() (interface {}, error)v"type.interface {}errtype.errorsharedtype.bool.autotmp_202type.*map[string]*"".call.autotmp_21type.**"".call.autotmp_22.autotmp_24type.*uint8.autotmp_25.autotmp_26.autotmp_27.autotmp_28type.*int.autotmp_29ctype.*"".call.autotmp_23type.intokTgclocals7ad4026f5a6e12af096c2aa87f59d67aTgclocalse022135eb7c4e854953d50834407b39argofile..$GOROOT/src/internal/singleflight/singleflight.go$"".(*Group).DoChan&type.chan "".Result runtime.makechan*type.chan<- "".Result"runtime.growslice,runtime.racewriterange runtime.duffzero0type.[1]chan<- "".Result*"".(*Group).doCallfruntime.newproc&runtime.typedmemclr$runtime.panicslice~r2*type.<-chan "".Result~r30type.*[]chan<- "".Result.autotmp_30.autotmp_31,type.*chan<- "".Result.autotmp_322type.*[1]chan<- "".Result.autotmp_33.autotmp_34.autotmp_35chTgclocalsdcae2f2c1c03281902a6535a4c6a4bb6Tgclocals5b6a4b5d79a708949314f6dbc63a3c72,sync.(*WaitGroup).Done2runtime.mapdelete_faststr"runtime.chansend1.autotmp_8type."".Result.autotmp_13$type.*interface {}.autotmp_14.autotmp_15.autotmp_16.autotmp_17.autotmp_18type.*error.autotmp_19Tgclocalse1e8f2d5d85141e67db229c19ed63c79Tgclocalsc7d3db96cc7a55b2e2af2bd3223c7a9c$"".(*Group).ForgetTgclocals093d72ce5e8d4def2296140b9322b254Tgclocals7d2d5fca80364273fb07d5820a76fef4"".init"".initdone"runtime.throwinitsync.initTgclocals33cdeccccebe80329f1fdbee7f5874cb.gofile..<autogenerated>(type..hash."".Result(runtime.nilinterhash"runtime.interhashruntime.memhashptype.*"".ResulthTgclocalse6397a44f8e1b6e77d0f200b4fba5269Tgclocals69c1753bd5f81501d95132d08af04464$type..eq."".Resultruntime.ifaceeqruntime.efaceeqq.autotmp_9.autotmp_10Tgclocalsb5c7440574e69788f4b5c44c58660c31Tgclocalscebf9419b90e46477aa4e5920f8669aePgo.cuinfo.producer.internal/singleflight,go.info."".(*Group).Dogo.info.uintptr go.info.*"".callgo.info.errorHgo.info.func() (interface {}, error)"go.info.*"".Groupgo.info.stringgo.info.bool(go.info.interface {}.go.range."".(*Group).Do4go.info."".(*Group).DoChan,go.info.chan "".Result0go.info.<-chan "".Result6go.range."".(*Group).DoChan4go.info."".(*Group).doCall0go.info.chan<- "".Result6go.range."".(*Group).doCall4go.info."".(*Group).Forget6go.range."".(*Group).Forgetgo.info."".init go.range."".inittype.uint8"runtime.gcbits.01:type..namedata.*interface {}- runtime.algarray"runtime.gcbits.038go.info.type..hash."".Result$go.info.*"".Result:go.range.type..hash."".Result4go.info.type..eq."".Result6go.range.type..eq."".Result0type..hashfunc."".Result,type..eqfunc."".Result&type..alg."".ResultHtype..namedata.*singleflight.Result."runtime.gcbits.0f(type..importpath."".&type..namedata.Val.&type..namedata.Err.,type..namedata.Shared.Vtype..namedata.*chan<- singleflight.Result-Ztype..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.WaitGroup0type..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..namedata.extra-type.uint16type.uint32&type.unsafe.Pointer\type..namedata.*map[string]*singleflight.call-Ftype..namedata.*singleflight.Group.Ztype..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, bool)-type.*func(*"".Group, string, func() (interface {}, error)) (<-chan "".Result, bool)type.func(*"".Group, string, func() (interface {}, error)) (<-chan "".Result, bool)dtype..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, bool)-type.*func(string, func() (interface {}, error)) (<-chan "".Result, bool)type.func(string, func() (interface {}, error)) (<-chan "".Result, bool),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))type."".Group"runtime.gcbits.02$type..namedata.mu-"type..namedata.m-type.sync.MutexFtype..namedata.**singleflight.call-\type..namedata.*[1]chan<- singleflight.Result-Rtype..namedata.*chan singleflight.Result-(type.*chan "".Result,type..importpath.sync.dH%HD$H;A#HH$H$H$H$H$H$H$HHH$H$H$HHHXH$H$H$HHHL$H H$H$HT$H$H\$HD$ H$L$(L$7H$H$HL$7HH$HD$HD$@H$HD$H$H$H$HHHL$H H$H$HL$H$HT$HD$ H$H$H$HD$@HH$H$H$H$HD$@HD$H$HL$H$HL$H$HL$ HD$@HH0H$HD$@HH HP0HT$8H$HD$@HHH$HD$@HHHL$xHPHT$pHX(H\$hH@ HD$`HD$pH$HD$xH$HD$`H$HD$hH$HD$8HH$H$HHD$@HD$HHH0HL$XH$HD$HHH0HL$8HT$XH$HD$8HHL$HHA0H$H$HD$HH$HD$HHH H$HD$HHHH$HD$HHHHL$xHPHT$pHX(H\$hH@ HD$`HD$pH$HD$xH$HD$`H$HD$hH$$H$HH$H$HT$PH$uHD$PH$HAiH$HD$PH$J^ 62 `H{? G^ 66 ;0(Q1Bm}"`QD 68 dH%HD$H;AHH$H$H$H$HH$HD$H$HL$HL$`H$H$HHH$H$H$HHHH$H$H$HHHL$H H$H$HT$H$H\$HD$ H$L$(L$GH$H$HL$GHD$pHH0H$H$HD$pHH0HL$XH$H$HD$XHHL$pHA0HA8H$H$HD$pHHHHP@HH)Hp8HHJH9HL$XH\$PHT$HH$HH$H$HD$HHL$`H$HH$H$HD$XHL$pHA@HD$PHAHuGH$HA8H$H$HD$`H$$H$HH$H$H$HD$`YHH$Ht$HT$H\$HBHD$ Ht$(H\$8HT$0HD$pHH$HD$HD$hH$HD$PH|$hWHHl$Hl$HmHH$HD$H$H$HD$`H$HHD$hHH8H$H$HD$hH@@H@H @H$HH8H$HD$H$H$H$HHHL$H H$H$HL$H$HT$HD$ H$H$H$HD$hHH$H$H$HD$HD$hHD$H$HD$ H$HD$(H$HD$0$(HHD$HD$`H$$H$HHD$h`H$HH$HH$HD$`LHH$HD$hHD$H$H$HT$xH$uHD$xH$HA H$HD$xH$1 80 @ 82 E :_N/ C^ 83 ;62&Z5>)S8AQ1V 85 D! 86 dH%HD$H;AHH$H$H$H$H$HH$HHHL$hH\$H\$`Ht$Ht$XH|$H|$PL$LD$HH$HD$HH$HAHyHD$PHAHA HD$@H$HD$XH$HA Hy(HD$`HA(H$H$H$H$HHH$H$HHHL$H H$H$HL$H$HL$H$HH8H$H$HH@HL$(HP8HT$81H\$ HH$HD$ HL$8HHT$0HD$pWD$x$H\$hH$H$HHHPHT$pHL$xHL$@H$H$HH(HP H$H$HH0H$H$HH0HH$HL$0H$HL$pHL$HD$ HXH$HL$(HT$8H9 H$H$H$HHD$`2HD$P! 97 HPS, 98 ;>>5cH:58 99 dH%H;aH(Hl$ Hl$ HD$(H$HD$0H$HD$0HHH$HD$0HHHL$H H$HL$8HL$HL$@HL$HD$0H$Hl$ H(VPO4& 105 *T 106 dH%H;aHHl$Hl$HD$H$HH$<vHl$HHH$<uHH$HH$Hl$H9 A c* 110 dH%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( 114 dH%H;aqH@Hl$8Hl$8HD$@H$HD$PH$HD$HHT$PHZH\$0H2Ht$(H$HD$HHHPH\$(H91u\1u1D$'D$'D$XHl$8H@HH H$HD$PHH H$HD$H@ HL$PI 8HD$PHHH$HD$HHHHT$PHZH\$0HrHt$(H$HD$HHHHPH\$(H9t1MH$HL$HD$0HD$L$HD$H&H$HT$HD$0HD$L$HD$Hr 121 *21 f6; 122 -race"".(*Group).Do.fpx c: c4err/0fn/g/key/ ok4shared/v/ "".(*Group).DoChan.fpx cS cM chHfnGgGkeyG okM~~r2G ~r3G("".(*Group).doCall.fpxc^ chdfn^ g^key^"".(*Group).Forget.fpxgmkeym"".init.fpx *interface {}O6Wtype..hash."".Result.fpxph~r2type..eq."".Result.fpxpq~r2*singleflight.ResultU16internal/singleflightValErrShared( HYX @*chan<- singleflight.Result9GP6 n2*[]chan<- singleflight.Result}x61>q*singleflight.callwgvalerrdupschansP@a# @`pd6*[]uint8i6~.8 *[8]uint8z6>0 *[]string"v6 124 125 *[8]stringo6UUxUS>*[]*singleflight.call6*[8]*singleflight.callc 126 6@@s{%*map.bucket[string]*singleflight.callr6topbitskeysvaluesoverflow"*map.hdr[string]*singleflight.callEUh6,countflagsB noverflowhash0buckets 127 oldbuckets nevacuateextra00[ 0@P*map[string]*singleflight.call=cI65*singleflight.Group*func() (interface {}, error)6j/3\*func(*singleflight.Group, string, func() (interface {}, error)) (interface {}, error, bool)6<63*<-chan singleflight.ResultF602c*func(*singleflight.Group, string, func() (interface {}, error)) (<-chan singleflight.Result, bool)TZ1$6e23"*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)3DoChanN*func(string, func() (interface {}, error)) (<-chan singleflight.Result, bool)&(W6P3Forget *func(string)iHJ^63doCall?*func(*singleflight.call, string, func() (interface {}, error))D_6f36mum6&@**singleflight.call"h'6*[1]chan<- singleflight.Resultr1Qh6*chan singleflight.ResultE6U;2sync 140 Cc 152 153 F 155 x 156 158 " $ &((*,.024068@:<`>@BDFHJL/JN?PROPT_PVoPXZ\ 166 ^`^`bdfB.TLhjlnn 167 xpr 168 170 171 172 tvx z | 183 ~ $ &`.(*,.02406@PBbFNJR/ZV?OP_oJ 184 ^`^`pTdXd\dfB0tpl. 187 x 188 189 190 191 &P (*,.^`0 24@6O_oPPPPDtdHd @4l 194 Vv 195 &0P(*,.02,l& 196 Vdv& (* 197 V&0P(** * 198 Vr&0(* BPP!B" 199 0D:l\8r888888888 (n8nL:ld8z888888888 (8L:ld8|88888 (8L:ld8|88 ^^"6:N8 ~ 202 pp0@P 203 `:: 204 0@P 205 Xp:,<P:h8888 (8L:d8|888 ..pp0@P 207 `000@P 212 X 213 p 214 :>B<< 215 pp0@P 216 `tt 217 218 0@P 219 X`@@ 221 pp0@P 222 ` 223 pp 224 0@P 225 X`t** 227 228 "0@P 233 X 234 ``p 235 :>d`pp0@P 236 ` 237 pp0@P 238 ` 239 pp 240 0@P 241 X` 243 pp0@P 244 ` 245 0@P 247 X`p 249 pp0@P 250 ` 251 pp 252 0@P 253 X`2 255 pp0@P 256 `0@P 258 X`2p00 260 pp0@P 261 ` 262 pp 263 0@P 264 X``22 266 pp0@P 267 `0@P 269 X``pPP 271 pp0@P 272 `0@P 273 X`pJJ 275 pp0@P 276 `00@P 277 X`pd*BBF 279 pp0@P 280 ` 281 282 283 0@P 284 XF`2p`,,@@ 286 pp0@P 287 `66 288 0@P 290 Xp:> 292 pp0@P 293 ` 294 0@P 295 Xp.26:>B<< 297 pp0@P 298 ` 299 300 0@P 301 X` 303 pp0@P 304 ` 305 0@P 306 Xp.26BJJ 308 pp0@P 309 ` 310 0@P 312 Xp.2 314 pp0@P 315 ` 316 0@P 317 Xp.`26 319 320 321 pp0@P 322 ` 323 0@P 324 Xp26:>B 326 pp0@P 327 ` 328 0@P 329 Xp26B 331 pp0@P 332 ` 333 334 0@P 335 Xp2 337 pp0@P 338 ` 339 0@P 340 Xp`26.*0@P 342 `p 343 344 000 345 00n0n 346 000 347 000 348 349 0@P 350 X 351 .`p 352 353 ,,J 354 pp0@P 355 ``BB| 356 0@P 358 X`tp 360 pp0@P 361 `|88 362 pp0@P 363 `pp 364 365 0@P 366 X`h@@j@@22TT$$88go19ld