docs: private static Future<?> spawn(final int priority, final Runnable threadProc) {
          return threadPool.submit(new Runnable() {
  
              @Override
              public void run() {
                  Thread current = Thread.currentThread();
                  int defaultPriority = current.getPriority();
  
                  try {
                      current.setPriority(priority);
  
                      /*
                       * We yield to give the foreground process a chance to run.
                       * This also means that the new priority takes effect RIGHT
                       * AWAY, not after the next blocking call or quantum
                       * timeout.
                       */
                      Thread.yield();
  
                      try {
                          threadProc.run();
                      } catch (Exception e) {
                          logException(TAG, e);
                      }
                  } finally {
                      current.setPriority(defaultPriority);
                  }
  
              }
  
          });
      }