From 725c8ac53a31b98cb0cb1c34a6463f1ab584d93c Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Fri, 18 Jul 2025 18:36:01 +0200 Subject: [PATCH] sync latency update and read --- candidatepair.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/candidatepair.go b/candidatepair.go index 7dc3885..1423c56 100644 --- a/candidatepair.go +++ b/candidatepair.go @@ -5,6 +5,7 @@ package ice import ( "fmt" + "sync" "time" "github.com/pion/stun/v2" @@ -24,6 +25,7 @@ type TransactionID [stun.TransactionIDSize]byte // CandidatePair is a combination of a // local and remote candidate type CandidatePair struct { + mux sync.Mutex iceRoleControlling bool Remote Candidate Local Candidate @@ -108,19 +110,24 @@ func (a *Agent) sendSTUN(msg *stun.Message, local, remote Candidate) { } func (p *CandidatePair) markBindingRequest(transactionID TransactionID) { + p.mux.Lock() + defer p.mux.Unlock() p.lastBindingRequest = time.Now() p.lastBindingTransactionID = transactionID } func (p *CandidatePair) markBindingResponse(transactionID TransactionID) bool { + p.mux.Lock() + defer p.mux.Unlock() if p.lastBindingRequest.IsZero() || transactionID != p.lastBindingTransactionID { return false } - p.latency = time.Since(p.lastBindingRequest) return true } func (p *CandidatePair) Latency() time.Duration { + p.mux.Lock() + defer p.mux.Unlock() return p.latency }