| .class public LOK; |
| |
| .super Ljava/lang/Object; |
| |
| .method public static run(Ljava/lang/Object;Ljava/lang/Object;)V |
| .registers 3 |
| |
| invoke-static {v1, v2}, LOK;->runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V |
| |
| invoke-static {v1, v2}, LOK;->runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V |
| |
| invoke-static {v1, v2}, LOK;->runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V |
| |
| return-void |
| |
| .end method |
| |
| |
| |
| .method public static runNoMonitors(Ljava/lang/Object;Ljava/lang/Object;)V |
| .registers 3 |
| |
| invoke-static {}, LMain;->assertIsManaged()V |
| |
| return-void |
| |
| .end method |
| |
| .method public static runStraightLine(Ljava/lang/Object;Ljava/lang/Object;)V |
| .registers 3 |
| |
| invoke-static {}, LMain;->assertIsManaged()V |
| |
| monitor-enter v1 # 1 |
| monitor-enter v2 # 2 |
| |
| monitor-exit v2 # 2 |
| monitor-exit v1 # 1 |
| |
| return-void |
| |
| .end method |
| |
| .method public static runBalancedJoin(Ljava/lang/Object;Ljava/lang/Object;)V |
| .registers 3 |
| |
| invoke-static {}, LMain;->assertIsManaged()V |
| |
| monitor-enter v1 # 1 |
| |
| if-eqz v2, :Lnull |
| |
| :LnotNull |
| |
| monitor-enter v2 # 2 |
| goto :Lend |
| |
| :Lnull |
| monitor-enter v2 # 2 |
| |
| :Lend |
| |
| monitor-exit v2 # 2 |
| monitor-exit v1 # 1 |
| |
| return-void |
| |
| .end method |