.class public Lcom/helpshift/concurrency/HSThreadingService; .super Ljava/lang/Object; .source "SourceFile" # instance fields .field public final hsuiThreader:Lcom/helpshift/concurrency/HSThreader; .field public final networkService:Lcom/helpshift/concurrency/HSThreader; .field public final serialQueue:Lcom/helpshift/concurrency/HSThreader; .field public final syncLock:Ljava/lang/Object; # direct methods .method public constructor (Lcom/helpshift/concurrency/HSThreader;Lcom/helpshift/concurrency/HSThreader;Lcom/helpshift/concurrency/HSThreader;)V .locals 1 .line 16 invoke-direct {p0}, Ljava/lang/Object;->()V .line 12 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V iput-object v0, p0, Lcom/helpshift/concurrency/HSThreadingService;->syncLock:Ljava/lang/Object; iput-object p1, p0, Lcom/helpshift/concurrency/HSThreadingService;->networkService:Lcom/helpshift/concurrency/HSThreader; iput-object p2, p0, Lcom/helpshift/concurrency/HSThreadingService;->serialQueue:Lcom/helpshift/concurrency/HSThreader; iput-object p3, p0, Lcom/helpshift/concurrency/HSThreadingService;->hsuiThreader:Lcom/helpshift/concurrency/HSThreader; return-void .end method .method public static synthetic access$000(Lcom/helpshift/concurrency/HSThreadingService;)Lcom/helpshift/concurrency/HSThreader; .locals 0 .line 7 iget-object p0, p0, Lcom/helpshift/concurrency/HSThreadingService;->hsuiThreader:Lcom/helpshift/concurrency/HSThreader; return-object p0 .end method # virtual methods .method public getNetworkService()Lcom/helpshift/concurrency/HSThreader; .locals 1 iget-object v0, p0, Lcom/helpshift/concurrency/HSThreadingService;->networkService:Lcom/helpshift/concurrency/HSThreader; return-object v0 .end method .method public runOnUIThread(Ljava/lang/Runnable;)V .locals 2 iget-object v0, p0, Lcom/helpshift/concurrency/HSThreadingService;->serialQueue:Lcom/helpshift/concurrency/HSThreader; .line 47 new-instance v1, Lcom/helpshift/concurrency/HSThreadingService$2; invoke-direct {v1, p0, p1}, Lcom/helpshift/concurrency/HSThreadingService$2;->(Lcom/helpshift/concurrency/HSThreadingService;Ljava/lang/Runnable;)V invoke-interface {v0, v1}, Lcom/helpshift/concurrency/HSThreader;->submit(Ljava/lang/Runnable;)V return-void .end method .method public runSerial(Ljava/lang/Runnable;)V .locals 1 iget-object v0, p0, Lcom/helpshift/concurrency/HSThreadingService;->serialQueue:Lcom/helpshift/concurrency/HSThreader; .line 27 invoke-interface {v0, p1}, Lcom/helpshift/concurrency/HSThreader;->submit(Ljava/lang/Runnable;)V return-void .end method .method public runSync(Ljava/lang/Runnable;)V .locals 1 .line 31 new-instance v0, Lcom/helpshift/concurrency/NotifyingRunnable; invoke-direct {v0, p1}, Lcom/helpshift/concurrency/NotifyingRunnable;->(Ljava/lang/Runnable;)V iget-object p1, p0, Lcom/helpshift/concurrency/HSThreadingService;->syncLock:Ljava/lang/Object; .line 32 monitor-enter p1 .line 33 :try_start_0 invoke-virtual {p0, v0}, Lcom/helpshift/concurrency/HSThreadingService;->runSerial(Ljava/lang/Runnable;)V .line 34 invoke-virtual {v0}, Lcom/helpshift/concurrency/NotifyingRunnable;->waitForCompletion()V .line 35 monitor-exit p1 return-void :catchall_0 move-exception v0 monitor-exit p1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v0 .end method