code: func (sb *sandbox) joinLeaveStart() {
  	sb.Lock()
  	defer sb.Unlock()
  
  	for sb.joinLeaveDone != nil {
  		joinLeaveDone := sb.joinLeaveDone
  		sb.Unlock()
  
  		<-joinLeaveDone
  
  		sb.Lock()
  	}
  
  	sb.joinLeaveDone = make(chan struct{})
  }
docs: // joinLeaveStart waits to ensure there are no joins or leaves in progress and
  // marks this join/leave in progress without race