Skip to content

Instantly share code, notes, and snippets.

@lwahlmeier
Created September 15, 2017 21:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lwahlmeier/adadbd22a2314e11d4bd84bc0400ea38 to your computer and use it in GitHub Desktop.
Save lwahlmeier/adadbd22a2314e11d4bd84bc0400ea38 to your computer and use it in GitHub Desktop.
public TaskWrapper getNextTask() {
TaskWrapper schTask = null;
if(!scheduleQueue.isEmpty() && !checkingScheduled.get() && checkingScheduled.compareAndSet(false, true)) {
while((schTask = scheduleQueue.peekFirst()) != null && schTask.getScheduleDelay() <= 0) {
if(schTask.canExecute(schTask.getExecuteReference())) {
scheduleQueue.remove(schTask);
executeQueue.add(schTask);
}
}
checkingScheduled.set(false);
}
TaskWrapper execTask = executeQueue.poll();
if(execTask != null) {
return execTask;
}
return schTask;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment