package Common.Utils;
import _VisualDVM.Constants;
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(Constants.INTERRUPT);
            try {
                while (true) {
                    Thread.sleep(sleep_ms);
                    if (interruptFile.exists()) {
                        FileUtils.writeStringToFile(new File(Constants.ABORTED), "");
                        FileUtils.forceDelete(interruptFile);
                        action.call();
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        });
    }
}
