code: func (s *Sleeper) enqueueAssertedWaker(w *Waker) {
  	// Add the new waker to the front of the list.
  	for {
  		v := (*Waker)(atomic.LoadPointer(&s.sharedList))
  		w.next = v
  		if atomic.CompareAndSwapPointer(&s.sharedList, uwaker(v), uwaker(w)) {
  			break
  		}
  	}
  
  	for {
  		// Nothing to do if there isn't a G waiting.
  		g := atomic.LoadUintptr(&s.waitingG)
  		if g == 0 {
  			return
  		}
  
  		// Signal to the sleeper that a waker has been asserted.
  		if atomic.CompareAndSwapUintptr(&s.waitingG, g, 0) {
  			if g != preparingG {
  				// We managed to get a G. Wake it up.
  				goready(g, 0)
  			}
  		}
  	}
  }
docs: // enqueueAssertedWaker enqueues an asserted waker to the "ready" circular list
  // of wakers that want to notify the sleeper.