.class public final Lcom/bumptech/glide/util/Executors; .super Ljava/lang/Object; .source "Executors.java" # static fields .field private static final DIRECT_EXECUTOR:Ljava/util/concurrent/Executor; .field private static final MAIN_THREAD_EXECUTOR:Ljava/util/concurrent/Executor; # direct methods .method static constructor ()V .registers 1 .line 17 new-instance v0, Lcom/bumptech/glide/util/Executors$1; invoke-direct {v0}, Lcom/bumptech/glide/util/Executors$1;->()V sput-object v0, Lcom/bumptech/glide/util/Executors;->MAIN_THREAD_EXECUTOR:Ljava/util/concurrent/Executor; .line 26 new-instance v0, Lcom/bumptech/glide/util/Executors$2; invoke-direct {v0}, Lcom/bumptech/glide/util/Executors$2;->()V sput-object v0, Lcom/bumptech/glide/util/Executors;->DIRECT_EXECUTOR:Ljava/util/concurrent/Executor; return-void .end method .method private constructor ()V .registers 1 .line 13 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static directExecutor()Ljava/util/concurrent/Executor; .registers 1 .line 41 sget-object v0, Lcom/bumptech/glide/util/Executors;->DIRECT_EXECUTOR:Ljava/util/concurrent/Executor; return-object v0 .end method .method public static mainThreadExecutor()Ljava/util/concurrent/Executor; .registers 1 .line 36 sget-object v0, Lcom/bumptech/glide/util/Executors;->MAIN_THREAD_EXECUTOR:Ljava/util/concurrent/Executor; return-object v0 .end method .method public static shutdownAndAwaitTermination(Ljava/util/concurrent/ExecutorService;)V .registers 4 .line 47 invoke-interface {p0}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List; .line 49 :try_start_3 sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; const-wide/16 v1, 0x5 invoke-interface {p0, v1, v2, v0}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z move-result v0 if-nez v0, :cond_21 .line 50 invoke-interface {p0}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List; .line 51 sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; invoke-interface {p0, v1, v2, v0}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z move-result v0 if-eqz v0, :cond_19 goto :goto_21 .line 52 :cond_19 new-instance v0, Ljava/lang/RuntimeException; const-string v1, "Failed to shutdown" invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V throw v0 :try_end_21 .catch Ljava/lang/InterruptedException; {:try_start_3 .. :try_end_21} :catch_22 :cond_21 :goto_21 return-void :catch_22 move-exception v0 .line 56 invoke-interface {p0}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List; .line 57 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object p0 invoke-virtual {p0}, Ljava/lang/Thread;->interrupt()V .line 58 new-instance p0, Ljava/lang/RuntimeException; invoke-direct {p0, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V throw p0 .end method