UdpBioReadWriteProcessor$WriteRunnable.smali

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

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor;
.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/udp/bio/processor/UdpBioReadWriteProcessor;


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

    .line 162
    iput-object p1, p0, Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor$WriteRunnable;->this$0:Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor;

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

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

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

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

    return-void
.end method

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

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

    return-void
.end method


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

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

    # getter for: Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor;->mClient:Lcom/open/net/client/structures/BaseClient;
    invoke-static {v0}, Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor;->access$100(Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor;)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 178
    :cond_d
    iget-object v0, p0, Lcom/open/net/client/impl/udp/bio/processor/UdpBioReadWriteProcessor$WriteRunnable;->lock:Ljava/lang/Object;

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

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

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

    .line 180
    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 183
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

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

    const/4 v1, 0x1

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

    return-void
.end method

.method public wakeup()V
    .registers 3

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

    monitor-enter v0

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

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

    .line 169
    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