RxThreadFactory.smali 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. .class public final Lio/reactivex/internal/schedulers/RxThreadFactory;
  2. .super Ljava/util/concurrent/atomic/AtomicLong;
  3. .source "RxThreadFactory.java"
  4. # interfaces
  5. .implements Ljava/util/concurrent/ThreadFactory;
  6. # annotations
  7. .annotation system Ldalvik/annotation/MemberClasses;
  8. value = {
  9. Lio/reactivex/internal/schedulers/RxThreadFactory$RxCustomThread;
  10. }
  11. .end annotation
  12. # static fields
  13. .field private static final serialVersionUID:J = -0x6c1ac31a817da8a4L
  14. # instance fields
  15. .field final nonBlocking:Z
  16. .field final prefix:Ljava/lang/String;
  17. .field final priority:I
  18. # direct methods
  19. .method public constructor <init>(Ljava/lang/String;)V
  20. .locals 2
  21. const/4 v0, 0x5
  22. const/4 v1, 0x0
  23. .line 36
  24. invoke-direct {p0, p1, v0, v1}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
  25. return-void
  26. .end method
  27. .method public constructor <init>(Ljava/lang/String;I)V
  28. .locals 1
  29. const/4 v0, 0x0
  30. .line 40
  31. invoke-direct {p0, p1, p2, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory;-><init>(Ljava/lang/String;IZ)V
  32. return-void
  33. .end method
  34. .method public constructor <init>(Ljava/lang/String;IZ)V
  35. .locals 0
  36. .line 43
  37. invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicLong;-><init>()V
  38. .line 44
  39. iput-object p1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
  40. .line 45
  41. iput p2, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->priority:I
  42. .line 46
  43. iput-boolean p3, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->nonBlocking:Z
  44. return-void
  45. .end method
  46. # virtual methods
  47. .method public newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
  48. .locals 3
  49. .line 51
  50. new-instance v0, Ljava/lang/StringBuilder;
  51. iget-object v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
  52. invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
  53. const/16 v1, 0x2d
  54. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  55. invoke-virtual {p0}, Lio/reactivex/internal/schedulers/RxThreadFactory;->incrementAndGet()J
  56. move-result-wide v1
  57. invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
  58. .line 73
  59. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  60. move-result-object v0
  61. .line 74
  62. iget-boolean v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->nonBlocking:Z
  63. if-eqz v1, :cond_0
  64. new-instance v1, Lio/reactivex/internal/schedulers/RxThreadFactory$RxCustomThread;
  65. invoke-direct {v1, p1, v0}, Lio/reactivex/internal/schedulers/RxThreadFactory$RxCustomThread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
  66. goto :goto_0
  67. :cond_0
  68. new-instance v1, Ljava/lang/Thread;
  69. invoke-direct {v1, p1, v0}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
  70. .line 75
  71. :goto_0
  72. iget p1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->priority:I
  73. invoke-virtual {v1, p1}, Ljava/lang/Thread;->setPriority(I)V
  74. const/4 p1, 0x1
  75. .line 76
  76. invoke-virtual {v1, p1}, Ljava/lang/Thread;->setDaemon(Z)V
  77. return-object v1
  78. .end method
  79. .method public toString()Ljava/lang/String;
  80. .locals 2
  81. .line 82
  82. new-instance v0, Ljava/lang/StringBuilder;
  83. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  84. const-string v1, "RxThreadFactory["
  85. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  86. iget-object v1, p0, Lio/reactivex/internal/schedulers/RxThreadFactory;->prefix:Ljava/lang/String;
  87. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  88. const-string v1, "]"
  89. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  90. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  91. move-result-object v0
  92. return-object v0
  93. .end method