granularity level: instruction
.class public final Lo0/n;
.super Ljava/lang/Object;
.source "SourceFile"
.field public final a:Ljava/lang/Object;
.field public b:Ljava/util/ArrayDeque;
.field public c:Z
.method public constructor <init>()V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lo0/n;->a:Ljava/lang/Object;
return-void
.end method
.method public final a(Lo0/m;)V
.locals 2
iget-object v0, p0, Lo0/n;->a:Ljava/lang/Object;
monitor-enter v0
:try_start_0
iget-object v1, p0, Lo0/n;->b:Ljava/util/ArrayDeque;
if-nez v1, :cond_0
new-instance v1, Ljava/util/ArrayDeque;
invoke-direct {v1}, Ljava/util/ArrayDeque;-><init>()V
iput-object v1, p0, Lo0/n;->b:Ljava/util/ArrayDeque;
:cond_0
iget-object v1, p0, Lo0/n;->b:Ljava/util/ArrayDeque;
invoke-virtual {v1, p1}, Ljava/util/ArrayDeque;->add(Ljava/lang/Object;)Z
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
.method public final b(Lo0/o;)V
.locals 2
iget-object v0, p0, Lo0/n;->a:Ljava/lang/Object;
monitor-enter v0
:try_start_0
iget-object v1, p0, Lo0/n;->b:Ljava/util/ArrayDeque;
if-eqz v1, :cond_2
iget-boolean v1, p0, Lo0/n;->c:Z
if-eqz v1, :cond_0
goto :goto_1
:cond_0
const/4 v1, 0x1
iput-boolean v1, p0, Lo0/n;->c:Z
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_1
:goto_0
iget-object v1, p0, Lo0/n;->a:Ljava/lang/Object;
monitor-enter v1
:try_start_1
iget-object v0, p0, Lo0/n;->b:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lo0/m;
if-nez v0, :cond_1
const/4 p1, 0x0
iput-boolean p1, p0, Lo0/n;->c:Z
monitor-exit v1
return-void
:cond_1
monitor-exit v1
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
invoke-interface {v0, p1}, Lo0/m;->a(Lo0/o;)V
goto :goto_0
:catchall_0
move-exception p1
:try_start_2
monitor-exit v1
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
throw p1
:goto_1
:try_start_3
:cond_2
monitor-exit v0
return-void
:catchall_1
move-exception p1
monitor-exit v0
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
throw p1
.end method