[ Devnet ▾ ]

Track

9LYnFjejhL5THnpqHmLe33X1jadWvfcPB8Mfx3FQuLKv
This track's sequential ID.
Number
#0
Size of the stored blob.
Size
782 B
Epoch the track became active.
Active Epoch
129
Epoch after which the track expires.
Expiry Epoch
169
in 21 hours
URLhttps://gw.tape.network/track/9LYnFjejhL5THnpqHmLe33X1jadWvfcPB8Mfx3FQuLKv
Tape5imk7...kSDmk
Owner7rPgJ...oKGYs
Content Key5afAw...XpPcU
StatusReady
TypeUser
Filenameobj-63-5268.go
Content-Typetext/plain
EncodingInline
Size782 B
Spool Group8
Value Hash
7b3BtKMBo7V2cHhojSPPPKv3gwP3M6yuJJoPWmHk1JfV
Content
00000000  70 61 63 6b 61 67 65 20  63 6f 75 6e 74 65 72 0a |package counter.|
00000010  0a 69 6d 70 6f 72 74 20  22 73 79 6e 63 22 0a 0a |.import "sync"..|
00000020  2f 2f 20 43 6f 75 6e 74  65 72 20 69 73 20 61 20 |// Counter is a |
00000030  63 6f 6e 63 75 72 72 65  6e 63 79 2d 73 61 66 65 |concurrency-safe|
00000040  20 69 6e 74 65 67 65 72  20 63 6f 75 6e 74 65 72 | integer counter|
00000050  2e 0a 74 79 70 65 20 43  6f 75 6e 74 65 72 20 73 |..type Counter s|
00000060  74 72 75 63 74 20 7b 0a  09 6d 75 20 20 20 20 73 |truct {..mu    s|
00000070  79 6e 63 2e 4d 75 74 65  78 0a 09 76 61 6c 75 65 |ync.Mutex..value|
00000080  20 69 6e 74 36 34 0a 7d  0a 0a 2f 2f 20 4e 65 77 | int64.}..// New|
00000090  20 72 65 74 75 72 6e 73  20 61 20 63 6f 75 6e 74 | returns a count|
000000a0  65 72 20 69 6e 69 74 69  61 6c 69 7a 65 64 20 74 |er initialized t|
000000b0  6f 20 76 61 6c 75 65 2e  0a 66 75 6e 63 20 4e 65 |o value..func Ne|
000000c0  77 28 76 61 6c 75 65 20  69 6e 74 36 34 29 20 2a |w(value int64) *|
000000d0  43 6f 75 6e 74 65 72 20  7b 0a 09 72 65 74 75 72 |Counter {..retur|
000000e0  6e 20 26 43 6f 75 6e 74  65 72 7b 76 61 6c 75 65 |n &Counter{value|
000000f0  3a 20 76 61 6c 75 65 7d  0a 7d 0a 0a 2f 2f 20 49 |: value}.}..// I|
00000100  6e 63 20 69 6e 63 72 65  6d 65 6e 74 73 20 74 68 |nc increments th|
00000110  65 20 63 6f 75 6e 74 65  72 20 62 79 20 31 20 61 |e counter by 1 a|
00000120  6e 64 20 72 65 74 75 72  6e 73 20 74 68 65 20 6e |nd returns the n|
00000130  65 77 20 76 61 6c 75 65  2e 0a 66 75 6e 63 20 28 |ew value..func (|
00000140  63 20 2a 43 6f 75 6e 74  65 72 29 20 49 6e 63 28 |c *Counter) Inc(|
00000150  29 20 69 6e 74 36 34 20  7b 0a 09 72 65 74 75 72 |) int64 {..retur|
00000160  6e 20 63 2e 41 64 64 28  31 29 0a 7d 0a 0a 2f 2f |n c.Add(1).}..//|
00000170  20 41 64 64 20 61 64 64  73 20 64 65 6c 74 61 20 | Add adds delta |
00000180  74 6f 20 74 68 65 20 63  6f 75 6e 74 65 72 20 61 |to the counter a|
00000190  6e 64 20 72 65 74 75 72  6e 73 20 74 68 65 20 6e |nd returns the n|
000001a0  65 77 20 76 61 6c 75 65  2e 0a 66 75 6e 63 20 28 |ew value..func (|
000001b0  63 20 2a 43 6f 75 6e 74  65 72 29 20 41 64 64 28 |c *Counter) Add(|
000001c0  64 65 6c 74 61 20 69 6e  74 36 34 29 20 69 6e 74 |delta int64) int|
000001d0  36 34 20 7b 0a 09 63 2e  6d 75 2e 4c 6f 63 6b 28 |64 {..c.mu.Lock(|
000001e0  29 0a 09 64 65 66 65 72  20 63 2e 6d 75 2e 55 6e |)..defer c.mu.Un|
000001f0  6c 6f 63 6b 28 29 0a 0a  09 63 2e 76 61 6c 75 65 |lock()...c.value|
00000200  20 2b 3d 20 64 65 6c 74  61 0a 09 72 65 74 75 72 | += delta..retur|
00000210  6e 20 63 2e 76 61 6c 75  65 0a 7d 0a 0a 2f 2f 20 |n c.value.}..// |
00000220  56 61 6c 75 65 20 72 65  74 75 72 6e 73 20 74 68 |Value returns th|
00000230  65 20 63 75 72 72 65 6e  74 20 63 6f 75 6e 74 65 |e current counte|
00000240  72 20 76 61 6c 75 65 2e  0a 66 75 6e 63 20 28 63 |r value..func (c|
00000250  20 2a 43 6f 75 6e 74 65  72 29 20 56 61 6c 75 65 | *Counter) Value|
00000260  28 29 20 69 6e 74 36 34  20 7b 0a 09 63 2e 6d 75 |() int64 {..c.mu|
00000270  2e 4c 6f 63 6b 28 29 0a  09 64 65 66 65 72 20 63 |.Lock()..defer c|
00000280  2e 6d 75 2e 55 6e 6c 6f  63 6b 28 29 0a 0a 09 72 |.mu.Unlock()...r|
00000290  65 74 75 72 6e 20 63 2e  76 61 6c 75 65 0a 7d 0a |eturn c.value.}.|
000002a0  0a 2f 2f 20 52 65 73 65  74 20 73 65 74 73 20 74 |.// Reset sets t|
000002b0  68 65 20 63 6f 75 6e 74  65 72 20 74 6f 20 30 2e |he counter to 0.|
000002c0  0a 66 75 6e 63 20 28 63  20 2a 43 6f 75 6e 74 65 |.func (c *Counte|
000002d0  72 29 20 52 65 73 65 74  28 29 20 7b 0a 09 63 2e |r) Reset() {..c.|
000002e0  6d 75 2e 4c 6f 63 6b 28  29 0a 09 64 65 66 65 72 |mu.Lock()..defer|
000002f0  20 63 2e 6d 75 2e 55 6e  6c 6f 63 6b 28 29 0a 0a | c.mu.Unlock()..|
00000300  09 63 2e 76 61 6c 75 65  20 3d 20 30 0a 7d       |.c.value = 0.}|