OnceReadyBarrier.smali
.class public Lcom/kwai/video/hodor/util/OnceReadyBarrier;
.super Ljava/lang/Object;
# instance fields
.field private mIsReady:Z
.field private final mReadyLock:Ljava/lang/Object;
# direct methods
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mIsReady:Z
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mReadyLock:Ljava/lang/Object;
return-void
.end method
# virtual methods
.method public setReady()V
.registers 3
iget-object v1, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mReadyLock:Ljava/lang/Object;
monitor-enter v1
const/4 v0, 0x1
:try_start_4
iput-boolean v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mIsReady:Z
iget-object v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mReadyLock:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->notifyAll()V
monitor-exit v1
:try_end_c
.catchall {:try_start_4 .. :try_end_c} :catchall_15
const-string v0, "setReady"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/kwai/video/hodor/util/Timber;->d(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
:catchall_15
move-exception v0
:try_start_16
monitor-exit v1
:try_end_17
.catchall {:try_start_16 .. :try_end_17} :catchall_15
throw v0
.end method
.method public waitReady()V
.registers 6
const/4 v4, 0x0
:goto_1
iget-boolean v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mIsReady:Z
if-nez v0, :cond_49
iget-object v1, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mReadyLock:Ljava/lang/Object;
monitor-enter v1
:try_start_8
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "waitReady to wait, "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
new-instance v2, Ljava/lang/Throwable;
invoke-direct {v2}, Ljava/lang/Throwable;-><init>()V
invoke-static {v2}, Landroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v0, v2}, Lcom/kwai/video/hodor/util/Timber;->d(Ljava/lang/String;[Ljava/lang/Object;)V
iget-object v0, p0, Lcom/kwai/video/hodor/util/OnceReadyBarrier;->mReadyLock:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->wait()V
const-string v0, "waitReady finish wait"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v0, v2}, Lcom/kwai/video/hodor/util/Timber;->d(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_37
.catch Ljava/lang/InterruptedException; {:try_start_8 .. :try_end_37} :catch_3c
.catchall {:try_start_8 .. :try_end_37} :catchall_39
:goto_37
:try_start_37
monitor-exit v1
goto :goto_1
:catchall_39
move-exception v0
monitor-exit v1
:try_end_3b
.catchall {:try_start_37 .. :try_end_3b} :catchall_39
throw v0
:catch_3c
move-exception v0
:try_start_3d
const-string v2, "[waitReady] get InterruptedException, continue to wait anyway"
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
invoke-static {v2, v3}, Lcom/kwai/video/hodor/util/Timber;->e(Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
:try_end_48
.catchall {:try_start_3d .. :try_end_48} :catchall_39
goto :goto_37
:cond_49
const-string v0, "waitReady finish"
new-array v1, v4, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/kwai/video/hodor/util/Timber;->i(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method