code: public void stopServer() {
          shouldRun = false;
          try {
              listener.close();
          } catch (IOException ex) {
              // Don't care
          }
          while (true) {
              synchronized (allWorkers) {
                  if (allWorkers.isEmpty()) {
                      break;
                  }
                  for (Worker w : allWorkers) {
                      w.stopSocket();
                      w.interrupt();
                  }
              }
          }
  
          try {
              listener.close();
          } catch (IOException ex) {
              ex.printStackTrace();
          }
      }
docs: Shut down the HTTP server and all its workers, and close the listener socket.