BundleLock.smali
.class public Lorg/acdd/util/BundleLock;
.super Ljava/lang/Object;
.source "BundleLock.java"
# static fields
.field private static final BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/util/concurrent/locks/ReentrantReadWriteLock;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 34
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 33
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static WriteLock(Ljava/lang/String;)V
.registers 4
.prologue
.line 38
sget-object v1, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
monitor-enter v1
.line 39
:try_start_3
sget-object v0, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
.line 40
if-nez v0, :cond_17
.line 41
new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
.line 42
sget-object v2, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
invoke-interface {v2, p0, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 44
:cond_17
monitor-exit v1
:try_end_18
.catchall {:try_start_3 .. :try_end_18} :catchall_20
.line 45
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
move-result-object v0
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V
.line 46
return-void
.line 44
:catchall_20
move-exception v0
:try_start_21
monitor-exit v1
:try_end_22
.catchall {:try_start_21 .. :try_end_22} :catchall_20
throw v0
.end method
.method public static WriteUnLock(Ljava/lang/String;)V
.registers 3
.prologue
.line 49
sget-object v1, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
monitor-enter v1
.line 50
:try_start_3
sget-object v0, Lorg/acdd/util/BundleLock;->BUNDLE_IDENTIFIER_MAP:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
.line 51
if-nez v0, :cond_f
monitor-exit v1
.line 54
:goto_e
return-void
.line 52
:cond_f
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
move-result-object v0
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V
.line 53
monitor-exit v1
goto :goto_e
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_3 .. :try_end_1a} :catchall_18
throw v0
.end method