termWidth := p.resizeHandler()
for {
oldState := p.state.Load()
newState := (oldState & 0xFFFF) | (uint32(termWidth & 0xFFFF) << 16)
if p.state.CompareAndSwap(oldState, newState) {
if increasedBufCap := p.tracker.layout().bufCap(termWidth); cap(buf) < increasedBufCap {
buf = make([]byte, 0, increasedBufCap)
}
p.sync(buf)
break
}
}
return buf
}