123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- .class final Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;
- .super Ljava/lang/Object;
- .source "ComputationScheduler.java"
- # annotations
- .annotation system Ldalvik/annotation/EnclosingClass;
- value = Lio/reactivex/internal/schedulers/ComputationScheduler;
- .end annotation
- .annotation system Ldalvik/annotation/InnerClass;
- accessFlags = 0x18
- name = "FixedSchedulerPool"
- .end annotation
- # instance fields
- .field final cores:I
- .field final eventLoops:[Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- .field n:J
- # direct methods
- .method constructor <init>(ILjava/util/concurrent/ThreadFactory;)V
- .locals 3
- .line 75
- invoke-direct {p0}, Ljava/lang/Object;-><init>()V
- .line 77
- iput p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->cores:I
- .line 78
- new-array v0, p1, [Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- iput-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->eventLoops:[Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- const/4 v0, 0x0
- :goto_0
- if-ge v0, p1, :cond_0
- .line 80
- iget-object v1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->eventLoops:[Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- new-instance v2, Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- invoke-direct {v2, p2}, Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;-><init>(Ljava/util/concurrent/ThreadFactory;)V
- aput-object v2, v1, v0
- add-int/lit8 v0, v0, 0x1
- goto :goto_0
- :cond_0
- return-void
- .end method
- # virtual methods
- .method public getEventLoop()Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- .locals 6
- .line 85
- iget v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->cores:I
- if-nez v0, :cond_0
- .line 87
- sget-object v0, Lio/reactivex/internal/schedulers/ComputationScheduler;->SHUTDOWN_WORKER:Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- return-object v0
- .line 90
- :cond_0
- iget-object v1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->eventLoops:[Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- iget-wide v2, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->n:J
- const-wide/16 v4, 0x1
- add-long/2addr v4, v2
- iput-wide v4, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->n:J
- int-to-long v4, v0
- rem-long/2addr v2, v4
- long-to-int v0, v2
- aget-object v0, v1, v0
- return-object v0
- .end method
- .method public shutdown()V
- .locals 4
- .line 94
- iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$FixedSchedulerPool;->eventLoops:[Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
- array-length v1, v0
- const/4 v2, 0x0
- :goto_0
- if-ge v2, v1, :cond_0
- aget-object v3, v0, v2
- .line 95
- invoke-virtual {v3}, Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;->dispose()V
- add-int/lit8 v2, v2, 0x1
- goto :goto_0
- :cond_0
- return-void
- .end method
|