.class public final Lcom/google/android/gms/measurement/internal/zzfo; .super Lcom/google/android/gms/measurement/internal/zzgl; .source "com.google.android.gms:play-services-measurement-impl@@20.1.0" # static fields .field private static final zza:Ljava/util/concurrent/atomic/AtomicLong; # instance fields .field private zzb:Lcom/google/android/gms/measurement/internal/zzfn; .annotation build Landroidx/annotation/Nullable; .end annotation .end field .field private zzc:Lcom/google/android/gms/measurement/internal/zzfn; .annotation build Landroidx/annotation/Nullable; .end annotation .end field .field private final zzd:Ljava/util/concurrent/PriorityBlockingQueue; .field private final zze:Ljava/util/concurrent/BlockingQueue; .field private final zzf:Ljava/lang/Thread$UncaughtExceptionHandler; .field private final zzg:Ljava/lang/Thread$UncaughtExceptionHandler; .field private final zzh:Ljava/lang/Object; .field private final zzi:Ljava/util/concurrent/Semaphore; .field private volatile zzj:Z # direct methods .method public static constructor ()V .locals 3 .line 1 new-instance v0, Ljava/util/concurrent/atomic/AtomicLong; const-wide/high16 v1, -0x8000000000000000L invoke-direct {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;->(J)V sput-object v0, Lcom/google/android/gms/measurement/internal/zzfo;->zza:Ljava/util/concurrent/atomic/AtomicLong; return-void .end method .method public constructor (Lcom/google/android/gms/measurement/internal/zzfr;)V .locals 1 .line 1 invoke-direct {p0, p1}, Lcom/google/android/gms/measurement/internal/zzgl;->(Lcom/google/android/gms/measurement/internal/zzfr;)V new-instance p1, Ljava/lang/Object; invoke-direct {p1}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzh:Ljava/lang/Object; .line 2 new-instance p1, Ljava/util/concurrent/Semaphore; const/4 v0, 0x2 invoke-direct {p1, v0}, Ljava/util/concurrent/Semaphore;->(I)V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzi:Ljava/util/concurrent/Semaphore; .line 3 new-instance p1, Ljava/util/concurrent/PriorityBlockingQueue; invoke-direct {p1}, Ljava/util/concurrent/PriorityBlockingQueue;->()V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzd:Ljava/util/concurrent/PriorityBlockingQueue; new-instance p1, Ljava/util/concurrent/LinkedBlockingQueue; .line 4 invoke-direct {p1}, Ljava/util/concurrent/LinkedBlockingQueue;->()V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zze:Ljava/util/concurrent/BlockingQueue; new-instance p1, Lcom/google/android/gms/measurement/internal/zzfl; const-string v0, "Thread death: Uncaught exception on worker thread" .line 5 invoke-direct {p1, p0, v0}, Lcom/google/android/gms/measurement/internal/zzfl;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/String;)V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzf:Ljava/lang/Thread$UncaughtExceptionHandler; new-instance p1, Lcom/google/android/gms/measurement/internal/zzfl; const-string v0, "Thread death: Uncaught exception on network thread" .line 6 invoke-direct {p1, p0, v0}, Lcom/google/android/gms/measurement/internal/zzfl;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/String;)V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzg:Ljava/lang/Thread$UncaughtExceptionHandler; return-void .end method .method public static bridge synthetic zza(Lcom/google/android/gms/measurement/internal/zzfo;)Lcom/google/android/gms/measurement/internal/zzfn; .locals 0 iget-object p0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; return-object p0 .end method .method public static bridge synthetic zzb(Lcom/google/android/gms/measurement/internal/zzfo;)Lcom/google/android/gms/measurement/internal/zzfn; .locals 0 iget-object p0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; return-object p0 .end method .method public static bridge synthetic zzc(Lcom/google/android/gms/measurement/internal/zzfo;)Ljava/lang/Object; .locals 0 iget-object p0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzh:Ljava/lang/Object; return-object p0 .end method .method public static bridge synthetic zzj(Lcom/google/android/gms/measurement/internal/zzfo;)Ljava/util/concurrent/Semaphore; .locals 0 iget-object p0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzi:Ljava/util/concurrent/Semaphore; return-object p0 .end method .method public static bridge synthetic zzk()Ljava/util/concurrent/atomic/AtomicLong; .locals 1 sget-object v0, Lcom/google/android/gms/measurement/internal/zzfo;->zza:Ljava/util/concurrent/atomic/AtomicLong; return-object v0 .end method .method public static bridge synthetic zzl(Lcom/google/android/gms/measurement/internal/zzfo;Lcom/google/android/gms/measurement/internal/zzfn;)V .locals 0 const/4 p1, 0x0 iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; return-void .end method .method public static bridge synthetic zzm(Lcom/google/android/gms/measurement/internal/zzfo;Lcom/google/android/gms/measurement/internal/zzfn;)V .locals 0 const/4 p1, 0x0 iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; return-void .end method .method public static bridge synthetic zzr(Lcom/google/android/gms/measurement/internal/zzfo;)Z .locals 0 iget-boolean p0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzj:Z const/4 p0, 0x0 return p0 .end method .method private final zzt(Lcom/google/android/gms/measurement/internal/zzfm;)V .locals 3 .line 1 iget-object v0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzh:Ljava/lang/Object; monitor-enter v0 :try_start_0 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzd:Ljava/util/concurrent/PriorityBlockingQueue; invoke-virtual {v1, p1}, Ljava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z iget-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; if-nez p1, :cond_0 new-instance p1, Lcom/google/android/gms/measurement/internal/zzfn; const-string v1, "Measurement Worker" iget-object v2, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzd:Ljava/util/concurrent/PriorityBlockingQueue; .line 2 invoke-direct {p1, p0, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfn;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/String;Ljava/util/concurrent/BlockingQueue;)V iput-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzf:Ljava/lang/Thread$UncaughtExceptionHandler; .line 3 invoke-virtual {p1, v1}, Ljava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V iget-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; .line 4 invoke-virtual {p1}, Ljava/lang/Thread;->start()V goto :goto_0 .line 5 :cond_0 invoke-virtual {p1}, Lcom/google/android/gms/measurement/internal/zzfn;->zza()V .line 6 :goto_0 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method # virtual methods .method public final zzax()V .locals 2 .line 1 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; if-ne v0, v1, :cond_0 return-void :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Call expected from network thread" .line 2 invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public final zzd(Ljava/util/concurrent/atomic/AtomicReference;JLjava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object; .locals 1 .annotation build Landroidx/annotation/Nullable; .end annotation .line 1 monitor-enter p1 :try_start_0 iget-object v0, p0, Lcom/google/android/gms/measurement/internal/zzgk;->zzs:Lcom/google/android/gms/measurement/internal/zzfr; invoke-virtual {v0}, Lcom/google/android/gms/measurement/internal/zzfr;->zzaz()Lcom/google/android/gms/measurement/internal/zzfo; move-result-object v0 .line 2 invoke-virtual {v0, p5}, Lcom/google/android/gms/measurement/internal/zzfo;->zzp(Ljava/lang/Runnable;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 3 :try_start_1 invoke-virtual {p1, p2, p3}, Ljava/lang/Object;->wait(J)V :try_end_1 .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 4 :try_start_2 monitor-exit p1 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 5 invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; move-result-object p1 if-nez p1, :cond_1 iget-object p2, p0, Lcom/google/android/gms/measurement/internal/zzgk;->zzs:Lcom/google/android/gms/measurement/internal/zzfr; .line 6 invoke-virtual {p2}, Lcom/google/android/gms/measurement/internal/zzfr;->zzay()Lcom/google/android/gms/measurement/internal/zzeh; move-result-object p2 .line 7 invoke-virtual {p2}, Lcom/google/android/gms/measurement/internal/zzeh;->zzk()Lcom/google/android/gms/measurement/internal/zzef; move-result-object p2 const-string p3, "Timed out waiting for " invoke-virtual {p4}, Ljava/lang/String;->length()I move-result p5 if-eqz p5, :cond_0 invoke-virtual {p3, p4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; move-result-object p3 goto :goto_0 :cond_0 new-instance p4, Ljava/lang/String; invoke-direct {p4, p3}, Ljava/lang/String;->(Ljava/lang/String;)V move-object p3, p4 :goto_0 invoke-virtual {p2, p3}, Lcom/google/android/gms/measurement/internal/zzef;->zza(Ljava/lang/String;)V :cond_1 return-object p1 .line 8 :catch_0 :try_start_3 iget-object p2, p0, Lcom/google/android/gms/measurement/internal/zzgk;->zzs:Lcom/google/android/gms/measurement/internal/zzfr; .line 9 invoke-virtual {p2}, Lcom/google/android/gms/measurement/internal/zzfr;->zzay()Lcom/google/android/gms/measurement/internal/zzeh; move-result-object p2 .line 10 invoke-virtual {p2}, Lcom/google/android/gms/measurement/internal/zzeh;->zzk()Lcom/google/android/gms/measurement/internal/zzef; move-result-object p2 const-string p3, "Interrupted waiting for " invoke-virtual {p4}, Ljava/lang/String;->length()I move-result p5 if-eqz p5, :cond_2 invoke-virtual {p3, p4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; move-result-object p3 goto :goto_1 .line 11 :cond_2 new-instance p4, Ljava/lang/String; .line 12 invoke-direct {p4, p3}, Ljava/lang/String;->(Ljava/lang/String;)V move-object p3, p4 :goto_1 invoke-virtual {p2, p3}, Lcom/google/android/gms/measurement/internal/zzef;->zza(Ljava/lang/String;)V .line 13 monitor-exit p1 const/4 p1, 0x0 return-object p1 :catchall_0 move-exception p2 .line 14 monitor-exit p1 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_0 throw p2 .end method .method public final zzf()Z .locals 1 const/4 v0, 0x0 return v0 .end method .method public final zzg()V .locals 2 .line 1 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; if-ne v0, v1, :cond_0 return-void :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Call expected from worker thread" .line 2 invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public final zzh(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 1 invoke-virtual {p0}, Lcom/google/android/gms/measurement/internal/zzgl;->zzu()V .line 2 invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lcom/google/android/gms/measurement/internal/zzfm; const/4 v1, 0x0 const-string v2, "Task exception on worker thread" .line 3 invoke-direct {v0, p0, p1, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfm;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/util/concurrent/Callable;ZLjava/lang/String;)V .line 4 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object p1 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; if-ne p1, v1, :cond_1 iget-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzd:Ljava/util/concurrent/PriorityBlockingQueue; .line 5 invoke-virtual {p1}, Ljava/util/concurrent/PriorityBlockingQueue;->isEmpty()Z move-result p1 if-nez p1, :cond_0 iget-object p1, p0, Lcom/google/android/gms/measurement/internal/zzgk;->zzs:Lcom/google/android/gms/measurement/internal/zzfr; const-string v1, "Callable skipped the worker queue." .line 6 invoke-static {p1, v1}, Lcom/google/android/gms/measurement/internal/b;->a(Lcom/google/android/gms/measurement/internal/zzfr;Ljava/lang/String;)V .line 7 :cond_0 invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->run()V goto :goto_0 .line 8 :cond_1 invoke-direct {p0, v0}, Lcom/google/android/gms/measurement/internal/zzfo;->zzt(Lcom/google/android/gms/measurement/internal/zzfm;)V :goto_0 return-object v0 .end method .method public final zzi(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 1 invoke-virtual {p0}, Lcom/google/android/gms/measurement/internal/zzgl;->zzu()V .line 2 invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lcom/google/android/gms/measurement/internal/zzfm; const/4 v1, 0x1 const-string v2, "Task exception on worker thread" .line 3 invoke-direct {v0, p0, p1, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfm;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/util/concurrent/Callable;ZLjava/lang/String;)V .line 4 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object p1 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; if-ne p1, v1, :cond_0 .line 5 invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->run()V goto :goto_0 .line 6 :cond_0 invoke-direct {p0, v0}, Lcom/google/android/gms/measurement/internal/zzfo;->zzt(Lcom/google/android/gms/measurement/internal/zzfm;)V :goto_0 return-object v0 .end method .method public final zzo(Ljava/lang/Runnable;)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 1 invoke-virtual {p0}, Lcom/google/android/gms/measurement/internal/zzgl;->zzu()V .line 2 invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lcom/google/android/gms/measurement/internal/zzfm; const-string v1, "Task exception on network thread" const/4 v2, 0x0 .line 3 invoke-direct {v0, p0, p1, v2, v1}, Lcom/google/android/gms/measurement/internal/zzfm;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/Runnable;ZLjava/lang/String;)V iget-object p1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzh:Ljava/lang/Object; monitor-enter p1 :try_start_0 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zze:Ljava/util/concurrent/BlockingQueue; .line 4 invoke-interface {v1, v0}, Ljava/util/concurrent/BlockingQueue;->add(Ljava/lang/Object;)Z iget-object v0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; if-nez v0, :cond_0 new-instance v0, Lcom/google/android/gms/measurement/internal/zzfn; const-string v1, "Measurement Network" iget-object v2, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zze:Ljava/util/concurrent/BlockingQueue; .line 5 invoke-direct {v0, p0, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfn;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/String;Ljava/util/concurrent/BlockingQueue;)V iput-object v0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzg:Ljava/lang/Thread$UncaughtExceptionHandler; .line 6 invoke-virtual {v0, v1}, Ljava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V iget-object v0, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzc:Lcom/google/android/gms/measurement/internal/zzfn; .line 7 invoke-virtual {v0}, Ljava/lang/Thread;->start()V goto :goto_0 .line 8 :cond_0 invoke-virtual {v0}, Lcom/google/android/gms/measurement/internal/zzfn;->zza()V .line 9 :goto_0 monitor-exit p1 return-void :catchall_0 move-exception v0 monitor-exit p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method .method public final zzp(Ljava/lang/Runnable;)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 1 invoke-virtual {p0}, Lcom/google/android/gms/measurement/internal/zzgl;->zzu()V .line 2 invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lcom/google/android/gms/measurement/internal/zzfm; const/4 v1, 0x0 const-string v2, "Task exception on worker thread" .line 3 invoke-direct {v0, p0, p1, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfm;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/Runnable;ZLjava/lang/String;)V invoke-direct {p0, v0}, Lcom/google/android/gms/measurement/internal/zzfo;->zzt(Lcom/google/android/gms/measurement/internal/zzfm;)V return-void .end method .method public final zzq(Ljava/lang/Runnable;)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 1 invoke-virtual {p0}, Lcom/google/android/gms/measurement/internal/zzgl;->zzu()V .line 2 invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lcom/google/android/gms/measurement/internal/zzfm; const/4 v1, 0x1 const-string v2, "Task exception on worker thread" .line 3 invoke-direct {v0, p0, p1, v1, v2}, Lcom/google/android/gms/measurement/internal/zzfm;->(Lcom/google/android/gms/measurement/internal/zzfo;Ljava/lang/Runnable;ZLjava/lang/String;)V invoke-direct {p0, v0}, Lcom/google/android/gms/measurement/internal/zzfo;->zzt(Lcom/google/android/gms/measurement/internal/zzfm;)V return-void .end method .method public final zzs()Z .locals 2 .line 1 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; move-result-object v0 iget-object v1, p0, Lcom/google/android/gms/measurement/internal/zzfo;->zzb:Lcom/google/android/gms/measurement/internal/zzfn; if-ne v0, v1, :cond_0 const/4 v0, 0x1 return v0 :cond_0 const/4 v0, 0x0 return v0 .end method