code: func (s *summary) asyncFlush(now time.Time) {
  	s.mtx.Lock()
  	s.swapBufs(now)
  
  	// Unblock the original goroutine that was responsible for the mutation
  	// that triggered the compaction.  But hold onto the global non-buffer
  	// state mutex until the operation finishes.
  	go func() {
  		s.flushColdBuf()
  		s.mtx.Unlock()
  	}()
  }
docs: // asyncFlush needs bufMtx locked.