.class Lcom/squareup/picasso/Picasso$CleanupThread; .super Ljava/lang/Thread; .source "Picasso.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/squareup/picasso/Picasso; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0xa name = "CleanupThread" .end annotation # instance fields .field private final handler:Landroid/os/Handler; .field private final referenceQueue:Ljava/lang/ref/ReferenceQueue; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/ReferenceQueue<", "Ljava/lang/Object;", ">;" } .end annotation .end field # direct methods .method constructor (Ljava/lang/ref/ReferenceQueue;Landroid/os/Handler;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/ref/ReferenceQueue<", "Ljava/lang/Object;", ">;", "Landroid/os/Handler;", ")V" } .end annotation .line 614 invoke-direct {p0}, Ljava/lang/Thread;->()V .line 615 iput-object p1, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->referenceQueue:Ljava/lang/ref/ReferenceQueue; .line 616 iput-object p2, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->handler:Landroid/os/Handler; const/4 p1, 0x1 .line 617 invoke-virtual {p0, p1}, Lcom/squareup/picasso/Picasso$CleanupThread;->setDaemon(Z)V .line 618 const-string p1, "Picasso-refQueue" invoke-virtual {p0, p1}, Lcom/squareup/picasso/Picasso$CleanupThread;->setName(Ljava/lang/String;)V return-void .end method # virtual methods .method public run()V .registers 4 const/16 v0, 0xa .line 622 invoke-static {v0}, Landroid/os/Process;->setThreadPriority(I)V .line 630 :goto_5 :try_start_5 iget-object v0, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->referenceQueue:Ljava/lang/ref/ReferenceQueue; const-wide/16 v1, 0x3e8 .line 631 invoke-virtual {v0, v1, v2}, Ljava/lang/ref/ReferenceQueue;->remove(J)Ljava/lang/ref/Reference; move-result-object v0 check-cast v0, Lcom/squareup/picasso/Action$RequestWeakReference; .line 632 iget-object v1, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->handler:Landroid/os/Handler; invoke-virtual {v1}, Landroid/os/Handler;->obtainMessage()Landroid/os/Message; move-result-object v1 if-eqz v0, :cond_24 const/4 v2, 0x3 .line 634 iput v2, v1, Landroid/os/Message;->what:I .line 635 iget-object v0, v0, Lcom/squareup/picasso/Action$RequestWeakReference;->action:Lcom/squareup/picasso/Action; iput-object v0, v1, Landroid/os/Message;->obj:Ljava/lang/Object; .line 636 iget-object v0, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->handler:Landroid/os/Handler; invoke-virtual {v0, v1}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z goto :goto_5 .line 638 :cond_24 invoke-virtual {v1}, Landroid/os/Message;->recycle()V :try_end_27 .catch Ljava/lang/InterruptedException; {:try_start_5 .. :try_end_27} :catch_33 .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_27} :catch_28 goto :goto_5 :catch_28 move-exception v0 .line 643 iget-object v1, p0, Lcom/squareup/picasso/Picasso$CleanupThread;->handler:Landroid/os/Handler; new-instance v2, Lcom/squareup/picasso/Picasso$CleanupThread$1; invoke-direct {v2, p0, v0}, Lcom/squareup/picasso/Picasso$CleanupThread$1;->(Lcom/squareup/picasso/Picasso$CleanupThread;Ljava/lang/Exception;)V invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z :catch_33 return-void .end method .method shutdown()V .registers 1 .line 654 invoke-virtual {p0}, Lcom/squareup/picasso/Picasso$CleanupThread;->interrupt()V return-void .end method