SchedulerWhen$ScheduledAction.smali 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. .class abstract Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
  2. .super Ljava/util/concurrent/atomic/AtomicReference;
  3. .source "SchedulerWhen.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingClass;
  8. value = Lio/reactivex/internal/schedulers/SchedulerWhen;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x408
  12. name = "ScheduledAction"
  13. .end annotation
  14. .annotation system Ldalvik/annotation/Signature;
  15. value = {
  16. "Ljava/util/concurrent/atomic/AtomicReference<",
  17. "Lio/reactivex/disposables/Disposable;",
  18. ">;",
  19. "Lio/reactivex/disposables/Disposable;"
  20. }
  21. .end annotation
  22. # direct methods
  23. .method constructor <init>()V
  24. .locals 1
  25. .line 211
  26. sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  27. invoke-direct {p0, v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
  28. return-void
  29. .end method
  30. # virtual methods
  31. .method call(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)V
  32. .locals 2
  33. .line 215
  34. invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
  35. move-result-object v0
  36. check-cast v0, Lio/reactivex/disposables/Disposable;
  37. .line 217
  38. sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
  39. if-ne v0, v1, :cond_0
  40. return-void
  41. .line 221
  42. :cond_0
  43. sget-object v1, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  44. if-eq v0, v1, :cond_1
  45. return-void
  46. .line 228
  47. :cond_1
  48. invoke-virtual {p0, p1, p2}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->callActual(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)Lio/reactivex/disposables/Disposable;
  49. move-result-object p1
  50. .line 230
  51. sget-object p2, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  52. invoke-virtual {p0, p2, p1}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  53. move-result p2
  54. if-nez p2, :cond_2
  55. .line 235
  56. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  57. :cond_2
  58. return-void
  59. .end method
  60. .method protected abstract callActual(Lio/reactivex/Scheduler$Worker;Lio/reactivex/CompletableObserver;)Lio/reactivex/disposables/Disposable;
  61. .end method
  62. .method public dispose()V
  63. .locals 3
  64. .line 250
  65. sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
  66. .line 252
  67. :cond_0
  68. invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
  69. move-result-object v1
  70. check-cast v1, Lio/reactivex/disposables/Disposable;
  71. .line 253
  72. sget-object v2, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
  73. if-ne v1, v2, :cond_1
  74. return-void
  75. .line 257
  76. :cond_1
  77. invoke-virtual {p0, v1, v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  78. move-result v2
  79. if-eqz v2, :cond_0
  80. .line 259
  81. sget-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  82. if-eq v1, v0, :cond_2
  83. .line 261
  84. invoke-interface {v1}, Lio/reactivex/disposables/Disposable;->dispose()V
  85. :cond_2
  86. return-void
  87. .end method
  88. .method public isDisposed()Z
  89. .locals 1
  90. .line 243
  91. invoke-virtual {p0}, Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;->get()Ljava/lang/Object;
  92. move-result-object v0
  93. check-cast v0, Lio/reactivex/disposables/Disposable;
  94. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->isDisposed()Z
  95. move-result v0
  96. return v0
  97. .end method