AsyncTimeout$Companion.smali

.class public final Lokio/AsyncTimeout$Companion;
.super Ljava/lang/Object;
.source "AsyncTimeout.kt"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lokio/AsyncTimeout;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x19
    name = "Companion"
.end annotation


# direct methods
.method private constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public synthetic constructor <init>(Lkotlin/jvm/internal/f;)V
    .registers 2

    .line 2
    invoke-direct {p0}, Lokio/AsyncTimeout$Companion;-><init>()V

    return-void
.end method

.method public static final synthetic access$cancelScheduledTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;)Z
    .registers 2

    .line 1
    invoke-direct {p0, p1}, Lokio/AsyncTimeout$Companion;->cancelScheduledTimeout(Lokio/AsyncTimeout;)Z

    move-result p0

    return p0
.end method

.method public static final synthetic access$scheduleTimeout(Lokio/AsyncTimeout$Companion;Lokio/AsyncTimeout;JZ)V
    .registers 5

    .line 1
    invoke-direct {p0, p1, p2, p3, p4}, Lokio/AsyncTimeout$Companion;->scheduleTimeout(Lokio/AsyncTimeout;JZ)V

    return-void
.end method

.method private final cancelScheduledTimeout(Lokio/AsyncTimeout;)Z
    .registers 5

    .line 1
    const-class v0, Lokio/AsyncTimeout;

    .line 2
    monitor-enter v0

    .line 3
    :try_start_3
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v1

    :goto_7
    if-eqz v1, :cond_22

    .line 4
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {v1}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v2

    if-ne v2, p1, :cond_1d

    .line 5
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {p1}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v2

    invoke-static {v1, v2}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V

    const/4 v1, 0x0

    .line 6
    invoke-static {p1, v1}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V
    :try_end_1a
    .catchall {:try_start_3 .. :try_end_1a} :catchall_25

    const/4 p1, 0x0

    .line 7
    monitor-exit v0

    return p1

    .line 8
    :cond_1d
    :try_start_1d
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {v1}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v1
    :try_end_21
    .catchall {:try_start_1d .. :try_end_21} :catchall_25

    goto :goto_7

    :cond_22
    const/4 p1, 0x1

    .line 9
    monitor-exit v0

    return p1

    :catchall_25
    move-exception p1

    monitor-exit v0

    goto :goto_29

    :goto_28
    throw p1

    :goto_29
    goto :goto_28
.end method

.method private final scheduleTimeout(Lokio/AsyncTimeout;JZ)V
    .registers 12

    .line 1
    const-class v0, Lokio/AsyncTimeout;

    .line 2
    monitor-enter v0

    .line 3
    :try_start_3
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v1

    if-nez v1, :cond_19

    .line 4
    new-instance v1, Lokio/AsyncTimeout;

    invoke-direct {v1}, Lokio/AsyncTimeout;-><init>()V

    invoke-static {v1}, Lokio/AsyncTimeout;->access$setHead$cp(Lokio/AsyncTimeout;)V

    .line 5
    new-instance v1, Lokio/AsyncTimeout$Watchdog;

    invoke-direct {v1}, Lokio/AsyncTimeout$Watchdog;-><init>()V

    invoke-virtual {v1}, Ljava/lang/Thread;->start()V

    .line 6
    :cond_19
    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v1

    const-wide/16 v3, 0x0

    cmp-long v5, p2, v3

    if-eqz v5, :cond_33

    if-eqz p4, :cond_33

    .line 7
    invoke-virtual {p1}, Lokio/Timeout;->deadlineNanoTime()J

    move-result-wide v3

    sub-long/2addr v3, v1

    invoke-static {p2, p3, v3, v4}, Ljava/lang/Math;->min(JJ)J

    move-result-wide p2

    add-long/2addr p2, v1

    invoke-static {p1, p2, p3}, Lokio/AsyncTimeout;->access$setTimeoutAt$p(Lokio/AsyncTimeout;J)V

    goto :goto_45

    :cond_33
    cmp-long v5, p2, v3

    if-eqz v5, :cond_3c

    add-long/2addr p2, v1

    .line 8
    invoke-static {p1, p2, p3}, Lokio/AsyncTimeout;->access$setTimeoutAt$p(Lokio/AsyncTimeout;J)V

    goto :goto_45

    :cond_3c
    if-eqz p4, :cond_91

    .line 9
    invoke-virtual {p1}, Lokio/Timeout;->deadlineNanoTime()J

    move-result-wide p2

    invoke-static {p1, p2, p3}, Lokio/AsyncTimeout;->access$setTimeoutAt$p(Lokio/AsyncTimeout;J)V

    .line 10
    :goto_45
    # invokes: Lokio/AsyncTimeout;->remainingNanos(J)J
    invoke-static {p1, v1, v2}, Lokio/AsyncTimeout;->access$remainingNanos(Lokio/AsyncTimeout;J)J

    move-result-wide p2

    .line 11
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object p4

    const/4 v3, 0x0

    if-eqz p4, :cond_8d

    .line 12
    :goto_50
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {p4}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v4

    if-eqz v4, :cond_74

    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {p4}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v4

    if-eqz v4, :cond_70

    # invokes: Lokio/AsyncTimeout;->remainingNanos(J)J
    invoke-static {v4, v1, v2}, Lokio/AsyncTimeout;->access$remainingNanos(Lokio/AsyncTimeout;J)J

    move-result-wide v4

    cmp-long v6, p2, v4

    if-gez v6, :cond_65

    goto :goto_74

    .line 13
    :cond_65
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {p4}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object p4

    if-eqz p4, :cond_6c

    goto :goto_50

    :cond_6c
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V
    :try_end_6f
    .catchall {:try_start_3 .. :try_end_6f} :catchall_97

    throw v3

    .line 14
    :cond_70
    :try_start_70
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V
    :try_end_73
    .catchall {:try_start_70 .. :try_end_73} :catchall_97

    throw v3

    .line 15
    :cond_74
    :goto_74
    :try_start_74
    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {p4}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object p2

    invoke-static {p1, p2}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V

    .line 16
    invoke-static {p4, p1}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V

    .line 17
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object p1

    if-ne p4, p1, :cond_89

    .line 18
    const-class p1, Lokio/AsyncTimeout;

    invoke-virtual {p1}, Ljava/lang/Object;->notify()V

    .line 19
    :cond_89
    sget-object p1, Lkotlin/n;->a:Lkotlin/n;
    :try_end_8b
    .catchall {:try_start_74 .. :try_end_8b} :catchall_97

    monitor-exit v0

    return-void

    .line 20
    :cond_8d
    :try_start_8d
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V
    :try_end_90
    .catchall {:try_start_8d .. :try_end_90} :catchall_97

    throw v3

    .line 21
    :cond_91
    :try_start_91
    new-instance p1, Ljava/lang/AssertionError;

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

    throw p1
    :try_end_97
    .catchall {:try_start_91 .. :try_end_97} :catchall_97

    :catchall_97
    move-exception p1

    .line 22
    monitor-exit v0

    goto :goto_9b

    :goto_9a
    throw p1

    :goto_9b
    goto :goto_9a
.end method


# virtual methods
.method public final awaitTimeout$okio()Lokio/AsyncTimeout;
    .registers 9
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/InterruptedException;
        }
    .end annotation

    .line 1
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v0

    const/4 v1, 0x0

    if-eqz v0, :cond_6e

    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {v0}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v0

    if-nez v0, :cond_3c

    .line 2
    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v2

    .line 3
    const-class v0, Lokio/AsyncTimeout;

    # getter for: Lokio/AsyncTimeout;->IDLE_TIMEOUT_MILLIS:J
    invoke-static {}, Lokio/AsyncTimeout;->access$getIDLE_TIMEOUT_MILLIS$cp()J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Ljava/lang/Object;->wait(J)V

    .line 4
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v0

    if-eqz v0, :cond_38

    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {v0}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v0

    if-nez v0, :cond_37

    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v4

    sub-long/2addr v4, v2

    # getter for: Lokio/AsyncTimeout;->IDLE_TIMEOUT_NANOS:J
    invoke-static {}, Lokio/AsyncTimeout;->access$getIDLE_TIMEOUT_NANOS$cp()J

    move-result-wide v2

    cmp-long v0, v4, v2

    if-ltz v0, :cond_37

    .line 5
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v1

    :cond_37
    return-object v1

    .line 6
    :cond_38
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V

    throw v1

    .line 7
    :cond_3c
    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v2

    # invokes: Lokio/AsyncTimeout;->remainingNanos(J)J
    invoke-static {v0, v2, v3}, Lokio/AsyncTimeout;->access$remainingNanos(Lokio/AsyncTimeout;J)J

    move-result-wide v2

    const-wide/16 v4, 0x0

    cmp-long v6, v2, v4

    if-lez v6, :cond_59

    const-wide/32 v4, 0xf4240

    .line 8
    div-long v6, v2, v4

    mul-long v4, v4, v6

    sub-long/2addr v2, v4

    .line 9
    const-class v0, Lokio/AsyncTimeout;

    long-to-int v3, v2

    invoke-virtual {v0, v6, v7, v3}, Ljava/lang/Object;->wait(JI)V

    return-object v1

    .line 10
    :cond_59
    # getter for: Lokio/AsyncTimeout;->head:Lokio/AsyncTimeout;
    invoke-static {}, Lokio/AsyncTimeout;->access$getHead$cp()Lokio/AsyncTimeout;

    move-result-object v2

    if-eqz v2, :cond_6a

    # getter for: Lokio/AsyncTimeout;->next:Lokio/AsyncTimeout;
    invoke-static {v0}, Lokio/AsyncTimeout;->access$getNext$p(Lokio/AsyncTimeout;)Lokio/AsyncTimeout;

    move-result-object v3

    invoke-static {v2, v3}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V

    .line 11
    invoke-static {v0, v1}, Lokio/AsyncTimeout;->access$setNext$p(Lokio/AsyncTimeout;Lokio/AsyncTimeout;)V

    return-object v0

    .line 12
    :cond_6a
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V

    throw v1

    .line 13
    :cond_6e
    invoke-static {}, Lkotlin/jvm/internal/i;->b()V

    throw v1
.end method