Example #1
0
 @Override
 public void onDisable() {
   thread.interrupt();
   callbackManager.exit();
   if (mainThreadExecutor != null) mainThreadExecutor.exit();
   thread = null;
   runningWorkers.remove(getClass());
 }
Example #2
0
  private void run() {
    WorkerRunnable currentRunnable;

    while (!Thread.interrupted()) {
      synchronized (runQueue) {
        try {
          while (runQueue.isEmpty()) runQueue.wait();
        } catch (InterruptedException ex) {
          break;
        }
        currentRunnable = runQueue.pop();
      }

      try {
        callbackManager.callback(currentRunnable, currentRunnable.run());
      } catch (Throwable ex) {
        callbackManager.callback(currentRunnable, null, ex);
      }
      runnables.remove(currentRunnable.getClass());
    }
  }
Example #3
0
 @Override
 public void onEnable() {
   if (thread != null && thread.isAlive()) {
     PluginLogger.warning("Restarting thread '{0}'.", name);
     onDisable();
   }
   callbackManager.init();
   if (mainThreadExecutor != null) mainThreadExecutor.init();
   runningWorkers.put(getClass(), this);
   thread = createThread();
   thread.start();
 }
Example #4
0
 private void _submitQuery(WorkerRunnable runnable, WorkerCallback callback) {
   callbackManager.setupCallback(runnable, callback);
   _submitQuery(runnable);
 }