code: func (c *PCPClient) Stop() error {
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	if !c.r.mapped {
  		return errors.New("trying to stop an already stopped mapping")
  	}
  
  	c.stop()
  
  	c.r.mapped = false
  
  	err := c.writer.(*bytewriter.MemoryMappedWriter).Unmap(EraseFileOnStop)
  	c.writer = nil
  	if err != nil {
  		return errors.Wrap(err, "client: error unmapping MemoryMappedBuffer")
  	}
  
  	return nil
  }
docs: // Stop removes existing mapping and cleans up