private synchronized void fatalError()

in java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/Daemon.java [515:542]


    private synchronized void fatalError(String message, Throwable t, boolean retryable) {
        if (!shutdown.getAndSet(true)) {
            if (process != null) {
                if (stdErrReader != null) {
                    stdErrReader.prepareForShutdown();
                }
                if (stdOutReader != null) {
                    stdOutReader.prepareForShutdown();
                }
                process.destroy();
            }
            try {
                executor.awaitTermination(1, TimeUnit.SECONDS);
            } catch (InterruptedException e) { }
            executor.shutdownNow();
            if (handler != null) {
                if (retryable) {
                    handler.onError(t != null 
                            ? new RuntimeException(message, t) 
                            : new RuntimeException(message));
                } else {
                    handler.onError(t != null 
                            ? new IrrecoverableError(message, t) 
                            : new IrrecoverableError(message));
                }
            }
        }
    }