code: func (ma *markAllocator) get() (uint32, error) {
  	ma.lock.Lock()
  	defer ma.lock.Unlock()
  	if len(ma.marks) == 0 {
  		return 0, errors.New("allocator exhausted")
  	}
  	mark := ma.marks[0]
  	ma.marks = ma.marks[1:]
  	return mark, nil
  }
docs: // get returns the next available mark from the mark allocator.