terminator.setShouldDetach(detach); terminator.setNotifyParent(notifyParent);
if (detach) terminator.detach(); if (!notifyParent) terminator.quietly();
    public void run() {        if (delay > 0) {            try {                Thread.sleep(delay * 1000L);            } catch (InterruptedException e) {                //do nothing if interrupted                return;            }        }        TerminationRecord record;        Reference name = this.sfCompleteNameSafe();        record = normal ? TerminationRecord.normal(name) :            TerminationRecord.abnormal(message, name);        record.description = message;        TerminatorThread terminator = new TerminatorThread(this, record);        terminator.setShouldDetach(detach);        terminator.setNotifyParent(notifyParent);        terminator.run();    }