mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
internal/clientinfo: avoid heap alloc with mdns read loop
Once resource record (RR) was used to extract necessary information, it should be freed in memory. However, the current way that ctrld declare the RRs causing the slices to be heap allocated, and stay in memory longer than necessary. On system with low capacity, or firmware that GC does not run agressively, it may causes the system memory exhausted. To fix it, prevent RRs to be heap allocated, so they could be freed immediately after each iterations.
This commit is contained in:
committed by
Cuong Manh Le
parent
1e1c5a4dc8
commit
c24589a5be
@@ -165,7 +165,7 @@ func (m *mdns) readLoop(conn *net.UDPConn) {
|
||||
}
|
||||
|
||||
var ip, name string
|
||||
rrs := make([]dns.RR, 0, len(msg.Answer)+len(msg.Extra))
|
||||
var rrs []dns.RR
|
||||
rrs = append(rrs, msg.Answer...)
|
||||
rrs = append(rrs, msg.Extra...)
|
||||
for _, rr := range rrs {
|
||||
|
||||
Reference in New Issue
Block a user