Skip to content

Instantly share code, notes, and snippets.

@s1monw
Created May 5, 2014 18:23
Show Gist options
  • Save s1monw/aa8fafa88705d1010cd0 to your computer and use it in GitHub Desktop.
Save s1monw/aa8fafa88705d1010cd0 to your computer and use it in GitHub Desktop.
public abstract class MergeScheduler {
void merge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound){
if (acquirePermit()) {
try {
doMerg(writer, trigger, newMergesFound);
} finally {
releasePermit();
}
}
}
private boolean acquirePermit() {
if (stall) {
maybeStall();
return true;
}
return semaphore.tryAcquire();
}
proteced void maybeStall() {
semaphore.acquire();
}
protected void releasePermit(){
semaphore.release();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment