package com.google.common.util.concurrent; import com.google.common.base.Supplier; import com.google.common.util.concurrent.Service; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; @ElementTypesAreNonnullByDefault /* loaded from: classes3.dex */ public abstract class AbstractExecutionThreadService implements Service { private static final Logger logger = Logger.getLogger(AbstractExecutionThreadService.class.getName()); private final Service delegate = new AbstractService() { // from class: com.google.common.util.concurrent.AbstractExecutionThreadService.1 @Override // com.google.common.util.concurrent.AbstractService protected final void doStart() { MoreExecutors.renamingDecorator(AbstractExecutionThreadService.this.executor(), new Supplier() { // from class: com.google.common.util.concurrent.AbstractExecutionThreadService.1.1 @Override // com.google.common.base.Supplier public String get() { return AbstractExecutionThreadService.this.serviceName(); } }).execute(new Runnable() { // from class: com.google.common.util.concurrent.AbstractExecutionThreadService.1.2 @Override // java.lang.Runnable public void run() { try { AbstractExecutionThreadService.this.startUp(); notifyStarted(); if (isRunning()) { try { AbstractExecutionThreadService.this.run(); } catch (Throwable th) { try { AbstractExecutionThreadService.this.shutDown(); } catch (Exception e) { AbstractExecutionThreadService.logger.log(Level.WARNING, "Error while attempting to shut down the service after failure.", (Throwable) e); } notifyFailed(th); return; } } AbstractExecutionThreadService.this.shutDown(); notifyStopped(); } catch (Throwable th2) { notifyFailed(th2); } } }); } @Override // com.google.common.util.concurrent.AbstractService protected void doStop() { AbstractExecutionThreadService.this.triggerShutdown(); } @Override // com.google.common.util.concurrent.AbstractService public String toString() { return AbstractExecutionThreadService.this.toString(); } }; protected abstract void run() throws Exception; protected void shutDown() throws Exception { } protected void startUp() throws Exception { } protected void triggerShutdown() { } protected AbstractExecutionThreadService() { } protected Executor executor() { return new Executor() { // from class: com.google.common.util.concurrent.AbstractExecutionThreadService.2 @Override // java.util.concurrent.Executor public void execute(Runnable runnable) { MoreExecutors.newThread(AbstractExecutionThreadService.this.serviceName(), runnable).start(); } }; } public String toString() { String serviceName = serviceName(); String valueOf = String.valueOf(state()); return new StringBuilder(String.valueOf(serviceName).length() + 3 + String.valueOf(valueOf).length()).append(serviceName).append(" [").append(valueOf).append("]").toString(); } @Override // com.google.common.util.concurrent.Service public final boolean isRunning() { return this.delegate.isRunning(); } @Override // com.google.common.util.concurrent.Service public final Service.State state() { return this.delegate.state(); } @Override // com.google.common.util.concurrent.Service public final void addListener(Service.Listener listener, Executor executor) { this.delegate.addListener(listener, executor); } @Override // com.google.common.util.concurrent.Service public final Throwable failureCause() { return this.delegate.failureCause(); } @Override // com.google.common.util.concurrent.Service public final Service startAsync() { this.delegate.startAsync(); return this; } @Override // com.google.common.util.concurrent.Service public final Service stopAsync() { this.delegate.stopAsync(); return this; } @Override // com.google.common.util.concurrent.Service public final void awaitRunning() { this.delegate.awaitRunning(); } @Override // com.google.common.util.concurrent.Service public final void awaitRunning(long j, TimeUnit timeUnit) throws TimeoutException { this.delegate.awaitRunning(j, timeUnit); } @Override // com.google.common.util.concurrent.Service public final void awaitTerminated() { this.delegate.awaitTerminated(); } @Override // com.google.common.util.concurrent.Service public final void awaitTerminated(long j, TimeUnit timeUnit) throws TimeoutException { this.delegate.awaitTerminated(j, timeUnit); } protected String serviceName() { return getClass().getSimpleName(); } }