mirror of
https://github.com/netbirdio/ice.git
synced 2026-05-22 17:10:58 -07:00
Avoid allocation storing last active time
This commit is contained in:
+8
-8
@@ -31,8 +31,8 @@ type candidateBase struct {
|
||||
|
||||
resolvedAddr net.Addr
|
||||
|
||||
lastSent atomic.Value
|
||||
lastReceived atomic.Value
|
||||
lastSent atomic.Int64
|
||||
lastReceived atomic.Int64
|
||||
conn net.PacketConn
|
||||
|
||||
currAgent *Agent
|
||||
@@ -409,27 +409,27 @@ func (c *candidateBase) String() string {
|
||||
// LastReceived returns a time.Time indicating the last time
|
||||
// this candidate was received
|
||||
func (c *candidateBase) LastReceived() time.Time {
|
||||
if lastReceived, ok := c.lastReceived.Load().(time.Time); ok {
|
||||
return lastReceived
|
||||
if lastReceived := c.lastReceived.Load(); lastReceived != 0 {
|
||||
return time.Unix(0, lastReceived)
|
||||
}
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func (c *candidateBase) setLastReceived(t time.Time) {
|
||||
c.lastReceived.Store(t)
|
||||
c.lastReceived.Store(t.UnixNano())
|
||||
}
|
||||
|
||||
// LastSent returns a time.Time indicating the last time
|
||||
// this candidate was sent
|
||||
func (c *candidateBase) LastSent() time.Time {
|
||||
if lastSent, ok := c.lastSent.Load().(time.Time); ok {
|
||||
return lastSent
|
||||
if lastSent := c.lastSent.Load(); lastSent != 0 {
|
||||
return time.Unix(0, lastSent)
|
||||
}
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func (c *candidateBase) setLastSent(t time.Time) {
|
||||
c.lastSent.Store(t)
|
||||
c.lastSent.Store(t.UnixNano())
|
||||
}
|
||||
|
||||
func (c *candidateBase) seen(outbound bool) {
|
||||
|
||||
+2
-2
@@ -186,7 +186,7 @@ func TestCandidateLastSent(t *testing.T) {
|
||||
require.Equal(t, candidate.LastSent(), time.Time{})
|
||||
now := time.Now()
|
||||
candidate.setLastSent(now)
|
||||
require.Equal(t, candidate.LastSent(), now)
|
||||
require.EqualValues(t, 0, now.Sub(candidate.LastSent()))
|
||||
}
|
||||
|
||||
func TestCandidateLastReceived(t *testing.T) {
|
||||
@@ -194,7 +194,7 @@ func TestCandidateLastReceived(t *testing.T) {
|
||||
require.Equal(t, candidate.LastReceived(), time.Time{})
|
||||
now := time.Now()
|
||||
candidate.setLastReceived(now)
|
||||
require.Equal(t, candidate.LastReceived(), now)
|
||||
require.EqualValues(t, 0, now.Sub(candidate.LastReceived()))
|
||||
}
|
||||
|
||||
func TestCandidateFoundation(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user