code: func (hc *halfConn) newBlock() *block {
  	b := hc.bfree
  	if b == nil {
  		return new(block)
  	}
  	hc.bfree = b.link
  	b.link = nil
  	b.resize(0)
  	return b
  }
docs: // newBlock allocates a new block, from hc's free list if possible.