ComputationScheduler$EventLoopWorker.smali 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. .class final Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;
  2. .super Lio/reactivex/Scheduler$Worker;
  3. .source "ComputationScheduler.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingClass;
  6. value = Lio/reactivex/internal/schedulers/ComputationScheduler;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x18
  10. name = "EventLoopWorker"
  11. .end annotation
  12. # instance fields
  13. .field private final both:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  14. .field volatile disposed:Z
  15. .field private final poolWorker:Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
  16. .field private final serial:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  17. .field private final timed:Lio/reactivex/disposables/CompositeDisposable;
  18. # direct methods
  19. .method constructor <init>(Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;)V
  20. .locals 1
  21. .line 169
  22. invoke-direct {p0}, Lio/reactivex/Scheduler$Worker;-><init>()V
  23. .line 170
  24. iput-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->poolWorker:Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
  25. .line 171
  26. new-instance p1, Lio/reactivex/internal/disposables/ListCompositeDisposable;
  27. invoke-direct {p1}, Lio/reactivex/internal/disposables/ListCompositeDisposable;-><init>()V
  28. iput-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->serial:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  29. .line 172
  30. new-instance p1, Lio/reactivex/disposables/CompositeDisposable;
  31. invoke-direct {p1}, Lio/reactivex/disposables/CompositeDisposable;-><init>()V
  32. iput-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->timed:Lio/reactivex/disposables/CompositeDisposable;
  33. .line 173
  34. new-instance p1, Lio/reactivex/internal/disposables/ListCompositeDisposable;
  35. invoke-direct {p1}, Lio/reactivex/internal/disposables/ListCompositeDisposable;-><init>()V
  36. iput-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->both:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  37. .line 174
  38. iget-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->both:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  39. iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->serial:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  40. invoke-virtual {p1, v0}, Lio/reactivex/internal/disposables/ListCompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z
  41. .line 175
  42. iget-object p1, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->both:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  43. iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->timed:Lio/reactivex/disposables/CompositeDisposable;
  44. invoke-virtual {p1, v0}, Lio/reactivex/internal/disposables/ListCompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z
  45. return-void
  46. .end method
  47. # virtual methods
  48. .method public dispose()V
  49. .locals 1
  50. .line 180
  51. iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->disposed:Z
  52. if-nez v0, :cond_0
  53. const/4 v0, 0x1
  54. .line 181
  55. iput-boolean v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->disposed:Z
  56. .line 182
  57. iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->both:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  58. invoke-virtual {v0}, Lio/reactivex/internal/disposables/ListCompositeDisposable;->dispose()V
  59. :cond_0
  60. return-void
  61. .end method
  62. .method public isDisposed()Z
  63. .locals 1
  64. .line 188
  65. iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->disposed:Z
  66. return v0
  67. .end method
  68. .method public schedule(Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
  69. .locals 6
  70. .line 193
  71. iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->disposed:Z
  72. if-eqz v0, :cond_0
  73. .line 194
  74. sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  75. return-object p1
  76. .line 197
  77. :cond_0
  78. iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->poolWorker:Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
  79. const-wide/16 v2, 0x0
  80. const/4 v4, 0x0
  81. iget-object v5, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->serial:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  82. move-object v1, p1
  83. invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;->scheduleActual(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lio/reactivex/internal/disposables/DisposableContainer;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
  84. move-result-object p1
  85. return-object p1
  86. .end method
  87. .method public schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  88. .locals 6
  89. .line 201
  90. iget-boolean v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->disposed:Z
  91. if-eqz v0, :cond_0
  92. .line 202
  93. sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  94. return-object p1
  95. .line 205
  96. :cond_0
  97. iget-object v0, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->poolWorker:Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;
  98. iget-object v5, p0, Lio/reactivex/internal/schedulers/ComputationScheduler$EventLoopWorker;->timed:Lio/reactivex/disposables/CompositeDisposable;
  99. move-object v1, p1
  100. move-wide v2, p2
  101. move-object v4, p4
  102. invoke-virtual/range {v0 .. v5}, Lio/reactivex/internal/schedulers/ComputationScheduler$PoolWorker;->scheduleActual(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;Lio/reactivex/internal/disposables/DisposableContainer;)Lio/reactivex/internal/schedulers/ScheduledRunnable;
  103. move-result-object p1
  104. return-object p1
  105. .end method