Scheduler$DisposeTask.smali
.class final Lio/reactivex/Scheduler$DisposeTask;
.super Ljava/lang/Object;
.source "Scheduler.java"
# interfaces
.implements Ljava/lang/Runnable;
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/reactivex/Scheduler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "DisposeTask"
.end annotation
# instance fields
.field final decoratedRun:Ljava/lang/Runnable;
.field runner:Ljava/lang/Thread;
.field final w:Lio/reactivex/Scheduler$Worker;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Ljava/lang/Runnable;Lio/reactivex/Scheduler$Worker;)V
.registers 3
.param p1, "decoratedRun" # Ljava/lang/Runnable;
.param p2, "w" # Lio/reactivex/Scheduler$Worker;
.line 443
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 444
iput-object p1, p0, Lio/reactivex/Scheduler$DisposeTask;->decoratedRun:Ljava/lang/Runnable;
.line 445
iput-object p2, p0, Lio/reactivex/Scheduler$DisposeTask;->w:Lio/reactivex/Scheduler$Worker;
.line 446
return-void
.end method
# virtual methods
.method public dispose()V
.registers 3
.line 461
iget-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->runner:Ljava/lang/Thread;
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
if-ne v0, v1, :cond_14
iget-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->w:Lio/reactivex/Scheduler$Worker;
instance-of v1, v0, Lio/reactivex/internal/schedulers/NewThreadWorker;
if-eqz v1, :cond_14
.line 462
check-cast v0, Lio/reactivex/internal/schedulers/NewThreadWorker;
invoke-virtual {v0}, Lio/reactivex/internal/schedulers/NewThreadWorker;->shutdown()V
goto :goto_19
.line 464
:cond_14
iget-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->w:Lio/reactivex/Scheduler$Worker;
invoke-virtual {v0}, Lio/reactivex/Scheduler$Worker;->dispose()V
.line 466
:goto_19
return-void
.end method
.method public isDisposed()Z
.registers 2
.line 470
iget-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->w:Lio/reactivex/Scheduler$Worker;
invoke-virtual {v0}, Lio/reactivex/Scheduler$Worker;->isDisposed()Z
move-result v0
return v0
.end method
.method public run()V
.registers 3
.line 450
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iput-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->runner:Ljava/lang/Thread;
.line 452
const/4 v0, 0x0
:try_start_7
iget-object v1, p0, Lio/reactivex/Scheduler$DisposeTask;->decoratedRun:Ljava/lang/Runnable;
invoke-interface {v1}, Ljava/lang/Runnable;->run()V
:try_end_c
.catchall {:try_start_7 .. :try_end_c} :catchall_13
.line 454
invoke-virtual {p0}, Lio/reactivex/Scheduler$DisposeTask;->dispose()V
.line 455
iput-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->runner:Ljava/lang/Thread;
.line 456
nop
.line 457
return-void
.line 454
:catchall_13
move-exception v1
invoke-virtual {p0}, Lio/reactivex/Scheduler$DisposeTask;->dispose()V
.line 455
iput-object v0, p0, Lio/reactivex/Scheduler$DisposeTask;->runner:Ljava/lang/Thread;
throw v1
.end method