BioReadWriteProcessor$WriteRunnable.smali

.class Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;
.super Ljava/lang/Object;
.source "BioReadWriteProcessor.java"

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "WriteRunnable"
.end annotation


# instance fields
.field private final lock:Ljava/lang/Object;

.field final synthetic this$0:Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;


# direct methods
.method private constructor <init>(Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;)V
    .registers 2

    .line 177
    iput-object p1, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->this$0:Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 179
    new-instance p1, Ljava/lang/Object;

    invoke-direct {p1}, Ljava/lang/Object;-><init>()V

    iput-object p1, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

    return-void
.end method

.method synthetic constructor <init>(Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$1;)V
    .registers 3

    .line 177
    invoke-direct {p0, p1}, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;-><init>(Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;)V

    return-void
.end method


# virtual methods
.method public run()V
    .registers 3

    .line 190
    :goto_0
    :try_start_0
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->this$0:Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;

    # getter for: Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
    invoke-static {v0}, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;->access$1400(Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;)Lcom/open/net/client/structures/BaseClient;

    move-result-object v0

    invoke-virtual {v0}, Lcom/open/net/client/structures/BaseClient;->onWrite()Z

    move-result v0

    if-nez v0, :cond_d

    goto :goto_1e

    .line 193
    :cond_d
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

    monitor-enter v0
    :try_end_10
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_10} :catch_1a

    .line 194
    :try_start_10
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->wait()V

    .line 195
    monitor-exit v0

    goto :goto_0

    :catchall_17
    move-exception v1

    monitor-exit v0
    :try_end_19
    .catchall {:try_start_10 .. :try_end_19} :catchall_17

    :try_start_19
    throw v1
    :try_end_1a
    .catch Ljava/lang/Exception; {:try_start_19 .. :try_end_1a} :catch_1a

    :catch_1a
    move-exception v0

    .line 198
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    .line 201
    :goto_1e
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->this$0:Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor;->onSocketExit(I)V

    return-void
.end method

.method public wakeup()V
    .registers 3

    .line 182
    iget-object v0, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

    monitor-enter v0

    .line 183
    :try_start_3
    iget-object v1, p0, Lcom/open/net/client/impl/tcp/bio/processor/BioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V

    .line 184
    monitor-exit v0

    return-void

    :catchall_a
    move-exception v1

    monitor-exit v0
    :try_end_c
    .catchall {:try_start_3 .. :try_end_c} :catchall_a

    throw v1
.end method