code: func (w *Unbuffered) Write(p []byte) (n int, err error) {
  	w.mu.Lock()
  	var evict []int
  	for i, sw := range w.writers {
  		if n, err := sw.Write(p); err != nil || n != len(p) {
  			// On error, evict the writer
  			evict = append(evict, i)
  		}
  	}
  	for n, i := range evict {
  		w.writers = append(w.writers[:i-n], w.writers[i-n+1:]...)
  	}
  	w.mu.Unlock()
  	return len(p), nil
  }
docs: // Write writes bytes to all writers. Failed writers will be evicted during
  // this call.