package com.alibaba.doris.dataserver.store.log.db.impl;
import java.util.concurrent.Semaphore;
import com.alibaba.doris.dataserver.store.log.db.LogCommand;
/*
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public abstract class BaseLogCommand implements LogCommand {
protected BaseLogCommand(boolean isWaitingForCommandCompleted) {
if (isWaitingForCommandCompleted) {
signal = new Semaphore(0);
}
}
public boolean isSuccess() {
return isSuccess;
}
public void waitingResult() {
if (null != signal) {
try {
signal.acquire();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
public void complete() {
if (null != signal) {
signal.release();
}
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
private boolean isSuccess = false;
private Semaphore signal;
}