func (b *AtomicFixedSizeRingBuf) Adopt(me []byte) {
	b.tex.Lock()
	defer b.tex.Unlock()

	n := len(me)
	if n > b.N {
		b.A[0] = me
		b.A[1] = make([]byte, n, n)
		b.N = n
		b.Use = 0
		b.Beg = 0
		b.readable = n
	} else {
		// we already have a larger buffer, reuse it.
		copy(b.A[0], me)
		b.Use = 0
		b.Beg = 0
		b.readable = n
	}
}
func (b *AtomicFixedSizeRingBuf) Adopt(me []byte) {
	b.tex.Lock()
	defer b.tex.Unlock()

	n := len(me)
	if n > b.N {
		b.A[0] = me
		b.A[1] = make([]byte, n, n)
		b.N = n
		b.Use = 0
		b.Beg = 0
		b.readable = n
	} else {
		
		copy(b.A[0], me)
		b.Use = 0
		b.Beg = 0
		b.readable = n
	}
}
func ( b * AtomicFixedSizeRingBuf ) Adopt ( me [ ] byte ) { b . tex . Lock ( ) defer b . tex . Unlock ( ) n := len ( me ) if n > b . N { b . A [ 0 ] = me b . A [ 1 ] = make ( [ ] byte , n , n ) b . N = n b . Use = 0 b . Beg = 0 b . readable = n } else { // we already have a larger buffer, reuse it. copy ( b . A [ 0 ] , me ) b . Use = 0 b . Beg = 0 b . readable = n } }
// Adopt(): non-standard.
//
// For efficiency's sake, (possibly) take ownership of
// already allocated slice offered in me.
//
// If me is large we will adopt it, and we will potentially then
// write to the me buffer.
// If we already have a bigger buffer, copy me into the existing
// buffer instead.
//
// Side-effect: may change b.Use, among other internal state changes.
//
Adopt () : non - standard . For efficiency s sake ( possibly ) take ownership of already allocated slice offered in me . If me is large we will adopt it and we will potentially then write to the me buffer . If we already have a bigger buffer copy me into the existing buffer instead . Side - effect : may change b . Use among other internal state changes .