code: func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
  	mu.RLock()
  	defer mu.RUnlock()
  	if newCount := atomic.AddUint64(&mapCount, 1); newCount > maxMapCount {
  		atomic.AddUint64(&mapCount, ^uint64(0)) // decrement
  		return nil, ErrMaxMapCountReached
  	}
  	data, err = syscall.Mmap(fd, offset, length, prot, flags)
  	if err != nil {
  		atomic.AddUint64(&mapCount, ^uint64(0)) // decrement
  	}
  	return data, err
  }
docs: // Mmap increments the global map count, and then calls syscall.Mmap. It
  // decrements the map count and returns an error if the count was over the
  // limit. If syscall.Mmap returns an error it also decrements the count.