@@ -953,11 +953,14 @@ public async Task LockingAsync()
953
953
s3 . Count = 3 ;
954
954
Simple s4 = new Simple ( ) ;
955
955
s4 . Count = 4 ;
956
+ Simple s5 = new Simple ( ) ;
957
+ s5 . Count = 5 ;
956
958
957
959
await ( s . SaveAsync ( s1 , ( long ) 1 ) ) ;
958
960
await ( s . SaveAsync ( s2 , ( long ) 2 ) ) ;
959
961
await ( s . SaveAsync ( s3 , ( long ) 3 ) ) ;
960
962
await ( s . SaveAsync ( s4 , ( long ) 4 ) ) ;
963
+ await ( s . SaveAsync ( s5 , ( long ) 5 ) ) ;
961
964
Assert . AreEqual ( LockMode . Write , s . GetCurrentLockMode ( s1 ) ) ;
962
965
await ( tx . CommitAsync ( ) ) ;
963
966
s . Close ( ) ;
@@ -972,6 +975,8 @@ public async Task LockingAsync()
972
975
Assert . AreEqual ( LockMode . Upgrade , s . GetCurrentLockMode ( s3 ) ) ;
973
976
s4 = ( Simple ) await ( s . LoadAsync ( typeof ( Simple ) , ( long ) 4 , LockMode . UpgradeNoWait ) ) ;
974
977
Assert . AreEqual ( LockMode . UpgradeNoWait , s . GetCurrentLockMode ( s4 ) ) ;
978
+ s5 = ( Simple ) await ( s . LoadAsync ( typeof ( Simple ) , ( long ) 5 , LockMode . UpgradeSkipLocked ) ) ;
979
+ Assert . AreEqual ( LockMode . UpgradeSkipLocked , s . GetCurrentLockMode ( s5 ) ) ;
975
980
976
981
s1 = ( Simple ) await ( s . LoadAsync ( typeof ( Simple ) , ( long ) 1 , LockMode . Upgrade ) ) ; //upgrade
977
982
Assert . AreEqual ( LockMode . Upgrade , s . GetCurrentLockMode ( s1 ) ) ;
@@ -981,14 +986,18 @@ public async Task LockingAsync()
981
986
Assert . AreEqual ( LockMode . Upgrade , s . GetCurrentLockMode ( s3 ) ) ;
982
987
s4 = ( Simple ) await ( s . LoadAsync ( typeof ( Simple ) , ( long ) 4 , LockMode . Upgrade ) ) ;
983
988
Assert . AreEqual ( LockMode . UpgradeNoWait , s . GetCurrentLockMode ( s4 ) ) ;
989
+ s5 = ( Simple ) await ( s . LoadAsync ( typeof ( Simple ) , ( long ) 5 , LockMode . Upgrade ) ) ;
990
+ Assert . AreEqual ( LockMode . UpgradeSkipLocked , s . GetCurrentLockMode ( s4 ) ) ;
984
991
985
992
await ( s . LockAsync ( s2 , LockMode . Upgrade ) ) ; //upgrade
986
993
Assert . AreEqual ( LockMode . Upgrade , s . GetCurrentLockMode ( s2 ) ) ;
987
994
await ( s . LockAsync ( s3 , LockMode . Upgrade ) ) ;
988
995
Assert . AreEqual ( LockMode . Upgrade , s . GetCurrentLockMode ( s3 ) ) ;
989
996
await ( s . LockAsync ( s1 , LockMode . UpgradeNoWait ) ) ;
990
997
await ( s . LockAsync ( s4 , LockMode . None ) ) ;
998
+ await ( s . LockAsync ( s5 , LockMode . UpgradeSkipLocked ) ) ;
991
999
Assert . AreEqual ( LockMode . UpgradeNoWait , s . GetCurrentLockMode ( s4 ) ) ;
1000
+ Assert . AreEqual ( LockMode . UpgradeSkipLocked , s . GetCurrentLockMode ( s5 ) ) ;
992
1001
993
1002
await ( tx . CommitAsync ( ) ) ;
994
1003
tx = s . BeginTransaction ( ) ;
@@ -997,6 +1006,7 @@ public async Task LockingAsync()
997
1006
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s1 ) ) ;
998
1007
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s2 ) ) ;
999
1008
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s4 ) ) ;
1009
+ Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s5 ) ) ;
1000
1010
1001
1011
await ( s . LockAsync ( s1 , LockMode . Read ) ) ; //upgrade
1002
1012
Assert . AreEqual ( LockMode . Read , s . GetCurrentLockMode ( s1 ) ) ;
@@ -1017,11 +1027,13 @@ public async Task LockingAsync()
1017
1027
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s1 ) ) ;
1018
1028
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s2 ) ) ;
1019
1029
Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s4 ) ) ;
1030
+ Assert . AreEqual ( LockMode . None , s . GetCurrentLockMode ( s5 ) ) ;
1020
1031
1021
1032
await ( s . DeleteAsync ( s1 ) ) ;
1022
1033
await ( s . DeleteAsync ( s2 ) ) ;
1023
1034
await ( s . DeleteAsync ( s3 ) ) ;
1024
1035
await ( s . DeleteAsync ( s4 ) ) ;
1036
+ await ( s . DeleteAsync ( s5 ) ) ;
1025
1037
await ( tx . CommitAsync ( ) ) ;
1026
1038
s . Close ( ) ;
1027
1039
}
0 commit comments