code: func (g *GoroutinePriorityPool) Schedule(priority int64, job, onCanceled func()) {
  	g.wg.Add(1)
  	t := &task{priority, job, onCanceled}
  	g.mu.Lock()
  	heap.Push(&g.tasks, t)
  	g.mu.Unlock()
  	go g.executeOne()
  }
docs: // Schedule adds a new job for execution as a separate goroutine.
  //
  // If the GoroutinePriorityPool is canceled, onCanceled is called instead. It
  // is fine to pass nil as onCanceled. Smaller values of priority imply earlier
  // execution.
  //
  // The lower the priority value, the higher the priority of the item.