code: func (wait *rwwait) WaitAtomic(after <-chan time.Time) bool {
  	select {
  	case <-wait.wake:
  		return true
  	case <-after:
  	}
  	swapped := atomic.CompareAndSwapInt32(&wait.alive, 1, 0)
  	// They're gonna put it.
  	if !swapped {
  		<-wait.wake
  		return true
  	}
  	return false
  }
docs: // Wait for a signal on the waiter, with the guarantee that both goroutines
  // will agree on whether or not the signal was delivered.
  //
  // Returns true if the wake occurred, false on timeout.