package Common.Utils;
import Common.CommonConstants;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.util.concurrent.Callable;
public class InterruptThread extends Thread {
    //------------
    public InterruptThread(int sleep_ms, Callable action) {
        super(() -> {
            File interruptFile = new File(CommonConstants.INTERRUPT);
            try {
                while (true) {
                    Thread.sleep(sleep_ms);
                    if (interruptFile.exists()) {
                        FileUtils.writeStringToFile(new File(CommonConstants.ABORTED), "");
                        FileUtils.forceDelete(interruptFile);
                        action.call();
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        });
    }
}
