TrampolineScheduler.smali 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. .class public final Lio/reactivex/internal/schedulers/TrampolineScheduler;
  2. .super Lio/reactivex/Scheduler;
  3. .source "TrampolineScheduler.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Lio/reactivex/internal/schedulers/TrampolineScheduler$SleepingRunnable;,
  8. Lio/reactivex/internal/schedulers/TrampolineScheduler$TimedRunnable;,
  9. Lio/reactivex/internal/schedulers/TrampolineScheduler$TrampolineWorker;
  10. }
  11. .end annotation
  12. # static fields
  13. .field private static final INSTANCE:Lio/reactivex/internal/schedulers/TrampolineScheduler;
  14. # direct methods
  15. .method static constructor <clinit>()V
  16. .locals 1
  17. .line 33
  18. new-instance v0, Lio/reactivex/internal/schedulers/TrampolineScheduler;
  19. invoke-direct {v0}, Lio/reactivex/internal/schedulers/TrampolineScheduler;-><init>()V
  20. sput-object v0, Lio/reactivex/internal/schedulers/TrampolineScheduler;->INSTANCE:Lio/reactivex/internal/schedulers/TrampolineScheduler;
  21. return-void
  22. .end method
  23. .method constructor <init>()V
  24. .locals 0
  25. .line 44
  26. invoke-direct {p0}, Lio/reactivex/Scheduler;-><init>()V
  27. return-void
  28. .end method
  29. .method public static instance()Lio/reactivex/internal/schedulers/TrampolineScheduler;
  30. .locals 1
  31. .line 36
  32. sget-object v0, Lio/reactivex/internal/schedulers/TrampolineScheduler;->INSTANCE:Lio/reactivex/internal/schedulers/TrampolineScheduler;
  33. return-object v0
  34. .end method
  35. # virtual methods
  36. .method public createWorker()Lio/reactivex/Scheduler$Worker;
  37. .locals 1
  38. .line 41
  39. new-instance v0, Lio/reactivex/internal/schedulers/TrampolineScheduler$TrampolineWorker;
  40. invoke-direct {v0}, Lio/reactivex/internal/schedulers/TrampolineScheduler$TrampolineWorker;-><init>()V
  41. return-object v0
  42. .end method
  43. .method public scheduleDirect(Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
  44. .locals 0
  45. .line 49
  46. invoke-interface {p1}, Ljava/lang/Runnable;->run()V
  47. .line 50
  48. sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  49. return-object p1
  50. .end method
  51. .method public scheduleDirect(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  52. .locals 0
  53. .line 56
  54. :try_start_0
  55. invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->sleep(J)V
  56. .line 57
  57. invoke-interface {p1}, Ljava/lang/Runnable;->run()V
  58. :try_end_0
  59. .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0
  60. goto :goto_0
  61. :catch_0
  62. move-exception p1
  63. .line 59
  64. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  65. move-result-object p2
  66. invoke-virtual {p2}, Ljava/lang/Thread;->interrupt()V
  67. .line 60
  68. invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  69. .line 62
  70. :goto_0
  71. sget-object p1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  72. return-object p1
  73. .end method