.class final Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker; .super Lio/reactivex/Scheduler$Worker; .source "IoScheduler.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lio/reactivex/internal/schedulers/IoScheduler; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x18 name = "EventLoopWorker" .end annotation # instance fields .field final once:Ljava/util/concurrent/atomic/AtomicBoolean; .field private final pool:Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool; .field private final tasks:Lio/reactivex/disposables/CompositeDisposable; .field private final threadWorker:Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker; # direct methods .method constructor (Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool;)V .locals 1 .line 199 invoke-direct {p0}, Lio/reactivex/Scheduler$Worker;->()V .line 197 new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->()V iput-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->once:Ljava/util/concurrent/atomic/AtomicBoolean; .line 200 iput-object p1, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->pool:Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool; .line 201 new-instance v0, Lio/reactivex/disposables/CompositeDisposable; invoke-direct {v0}, Lio/reactivex/disposables/CompositeDisposable;->()V iput-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->tasks:Lio/reactivex/disposables/CompositeDisposable; .line 202 invoke-virtual {p1}, Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool;->get()Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker; move-result-object p1 iput-object p1, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->threadWorker:Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker; return-void .end method # virtual methods .method public dispose()V .locals 3 .line 207 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->once:Ljava/util/concurrent/atomic/AtomicBoolean; const/4 v1, 0x0 const/4 v2, 0x1 invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z move-result v0 if-eqz v0, :cond_0 .line 208 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->tasks:Lio/reactivex/disposables/CompositeDisposable; invoke-virtual {v0}, Lio/reactivex/disposables/CompositeDisposable;->dispose()V .line 217 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->pool:Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool; iget-object v1, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->threadWorker:Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker; invoke-virtual {v0, v1}, Lio/reactivex/internal/schedulers/IoScheduler$CachedWorkerPool;->release(Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker;)V :cond_0 return-void .end method .method public isDisposed()Z .locals 1 .line 223 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->once:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z move-result v0 return v0 .end method .method public schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable; .locals 6 .line 228 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->tasks:Lio/reactivex/disposables/CompositeDisposable; invoke-virtual {v0}, Lio/reactivex/disposables/CompositeDisposable;->isDisposed()Z move-result v0 if-eqz v0, :cond_0 .line 230 sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable; return-object p1 .line 233 :cond_0 iget-object v0, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->threadWorker:Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker; iget-object v5, p0, Lio/reactivex/internal/schedulers/IoScheduler$EventLoopWorker;->tasks:Lio/reactivex/disposables/CompositeDisposable; move-object v1, p1 move-wide v2, p2 move-object v4, p4 invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/IoScheduler$ThreadWorker;->scheduleActual(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lio/reactivex/internal/disposables/DisposableContainer;)Lio/reactivex/internal/schedulers/ScheduledRunnable; move-result-object p1 return-object p1 .end method