Repository URL to install this package:
|
Version:
1.0 ▾
|
!<arch>
__.PKGDEF 0 0 0 644 1706 `
go object linux amd64 go1.6 X:none
build id "0b48ec93215eaae3d3a3ba9e5355afff067c91bd"
$$
package singleflight
import sync "sync"
type @"sync".Mutex struct { @"sync".state int32; @"sync".sema uint32 }
func (@"sync".m·1 *@"sync".Mutex) Lock ()
func (@"sync".m·1 *@"sync".Mutex) Unlock ()
type @"sync".WaitGroup struct { @"sync".state1 [12]byte; @"sync".sema uint32 }
func (@"sync".wg·1 *@"sync".WaitGroup) Add (@"sync".delta·2 int)
func (@"sync".wg·1 *@"sync".WaitGroup) Done ()
func (@"sync".wg·1 *@"sync".WaitGroup) Wait ()
func (@"sync".wg·2 *@"sync".WaitGroup "esc:0x12") @"sync".state () (? *uint64) { if uintptr(@"unsafe".Pointer(&@"sync".wg·2.@"sync".state1)) % uintptr(0x8) == uintptr(0x0) { return (*uint64)(@"unsafe".Pointer(&@"sync".wg·2.@"sync".state1)) } else { return (*uint64)(@"unsafe".Pointer(&@"sync".wg·2.@"sync".state1[int(0x4)])) } }
type @"".Result struct { Val interface {}; Err error; Shared bool }
type @"".call struct { @"".wg @"sync".WaitGroup; @"".val interface {}; @"".err error; @"".dups int; @"".chans []chan<- @"".Result }
type @"".Group struct { @"".mu @"sync".Mutex; @"".m map[string]*@"".call }
func (@"".g·4 *@"".Group) Do (@"".key·5 string, @"".fn·6 func() (? interface {}, ? error) "esc:0x1") (@"".v·1 interface {}, @"".err·2 error, @"".shared·3 bool)
func (@"".g·2 *@"".Group) DoChan (@"".key·3 string, @"".fn·4 func() (? interface {}, ? error)) (? <-chan @"".Result)
func (@"".g·1 *@"".Group) Forget (@"".key·2 string "esc:0x1")
func (@"".g·1 *@"".Group) @"".doCall (@"".c·2 *@"".call, @"".key·3 string "esc:0x1", @"".fn·4 func() (? interface {}, ? error) "esc:0x1")
func @"".init ()
import unsafe "unsafe" // indirect
$$
_go_.o 0 0 0 644 44158 `
go object linux amd64 go1.6 X:none
!
go13ldsync.a þ"".(*Group).Do À ÀdH% H;aÿ Hìh1Û1Û1ÛH$ H$¨ 1ÛH$ H$ H\$pH$H<$ ³ è Hl$pH]1íH9ëuPH H$HÇD$ HÇD$ HÇD$ è HD$ H\$pHû X =
4 HCHL$xH$ H H$H\$pHkHl$HL$XHL$HD$`HD$è HL$ ¶\$(H û Hi0HL$0HÿÅHi0H\$pH$H<$ toè H\$0H$H<$ tQè HT$0Hú t=HJ HB(HjH¬$ HjH¬$ H$ H$¨ Ƅ$° HÄhÉ뿉% 릉% ëH H$è HD$HD$8H$H<$ HÇD$ è H\$xH\$HH$ H\$PH\$8H\$@H H$H\$pHkHl$H\$HH\$H\$@H\$è H\$pH$H<$ è H\$pH$H\$8H\$H\$xH\$H$ H\$H$ H\$ è HL$8HY0Hû ÀHq HQ(HiH¬$ HiH¬$ H´$ H$¨ $° HÄhÉ% égÿÿÿ% éæþÿÿLCL$HD$è é¹ýÿÿé¡ýÿÿ% éAýÿÿè éäüÿÿÌÌÌÌ$
¨ $sync.(*Mutex).Lock Ö 0type.map[string]*"".call runtime.makemap Ò (runtime.writeBarrier 0type.map[string]*"".call æ 4runtime.mapaccess2_faststr Ü (sync.(*Mutex).Unlock ,sync.(*WaitGroup).Wait Ð type."".call â "runtime.newobject ° *sync.(*WaitGroup).Add 0type.map[string]*"".call Ö $runtime.mapassign1 (sync.(*Mutex).Unlock
$"".(*Group).doCall ì .runtime.writebarrierptr ¦ 0runtime.morestack_noctxt Ð "".autotmp_0008 type.error "".autotmp_0004 Otype.*"".call "".autotmp_0003 ?type.string "".autotmp_0001 type.string "".c _type.*"".call "".c otype.*"".call "".shared type.bool "".err `type.error "".v @"type.interface {}
"".fn 0Btype.func() (interface {}, error) "".key type.string "".g type.*"".Group .Ð÷ÏÐÀÏÐBÏ Z`?PUG "SAG ( SÚ'S²+ Tgclocals·6b995c1e4a1660a4c0d6fc5c37d224e3 Tgclocals·3454d336744ccefb4574fae6ac3a64d0 b$GOROOT/src/internal/singleflight/singleflight.goþ$"".(*Group).DoChan dH% HD$ÈH;Aj Hì¸ H H$HÇD$ è H\$H\$HH$À H$H<$ è H¬$À H]1íH9ëuSH H$HÇD$ HÇD$ HÇD$ è HD$ H$À Hû ¼ =
HCH$È H$Ð H H$H$À HkHl$H$ HL$H$ HD$è HD$ ¶\$(H û Hh0HÿÅHh0H\$HH\$pHÃHD$XHP8Hh@HHHHèHÿÅH9Íw_Hk@HÂHl$p= u9H+H$À H$H<$ tè H\$HH$à Hĸ É% ëÝH$Hl$è ëºH H$HT$HD$HL$Hl$ è HT$(Hl$0HL$8H\$XHû tKHèHl$@HÿÅHk@HKHHT$`= u HS8é=ÿÿÿLC8L$HT$è HT$`HD$@éÿÿÿë±H H$è H|$H|$hHÿ è WÀHÇÐè H H$è HD$Hø ¶ HDŽ$¨ HDŽ$° H$ Hl$H=
i H(H\$hH¬$¨ Hk@H¬$° HkH=
% HC8HD$hHD$PH$H<$ ü HÇD$ è H$È H$ H$Ð H$ H\$PH\$xH H$H$À HkHl$H$ H\$H\$xH\$è H$À H$H<$ tpè H$À H\$H\$PH\$H$È H\$ H$Ð H\$(H$Ø H\$0Ç$( H HD$è H\$HH$à Hĸ É% 뇉% éøþÿÿLC8L$HD$è éÈþÿÿH$Hl$è H$ éþÿÿ éCþÿÿéþÿÿLCL$HD$è éUüÿÿé=üÿÿ% é×ûÿÿè étûÿÿÌÌÌÌB
D &type.chan "".Result h runtime.makechan ´ $sync.(*Mutex).Lock è 0type.map[string]*"".call ° runtime.makemap ê (runtime.writeBarrier ® 0type.map[string]*"".call 4runtime.mapaccess2_faststr Ð (runtime.writeBarrier (sync.(*Mutex).Unlock ä .runtime.writebarrierptr ö .type.[]chan<- "".Result ° "runtime.growslice (runtime.writeBarrier Ü .runtime.writebarrierptr type."".call ¢ "runtime.newobject â ª runtime.duffzero ð 0type.[1]chan<- "".Result
"runtime.newobject ö
(runtime.writeBarrier Ð (runtime.writeBarrier ´ *sync.(*WaitGroup).Add
0type.map[string]*"".call ø
$runtime.mapassign1 ¨ (sync.(*Mutex).Unlock À *"".(*Group).doCall·f Ô runtime.newproc Ì .runtime.writebarrierptr ò .runtime.writebarrierptr Ì .runtime.writebarrierptr 0runtime.morestack_noctxt Pð "".autotmp_0017 /.type.[]chan<- "".Result "".autotmp_0016 type.*"".call "".autotmp_0015 *type.chan<- "".Result "".autotmp_0013 type.*"".call "".autotmp_0012 otype.string "".autotmp_0010 Otype.string "".c Ïtype.*"".call "".c ¿type.*"".call
"".ch ß&type.chan "".Result "".~r2 @*type.<-chan "".Result
"".fn 0Btype.func() (interface {}, error) "".key type.string "".g type.*"".Group .ðÿïðãïðï p#SaB ·"bV @ >