This commit is contained in:
parent
b173cf594a
commit
8fd30ea15d
1 changed files with 8 additions and 7 deletions
|
@ -57,21 +57,22 @@ public class Lock extends SimpleLock {
|
|||
*/
|
||||
public synchronized void waitHere() {
|
||||
if(!isTimed) {
|
||||
while(relocking)
|
||||
do
|
||||
super.waitHere();
|
||||
while(relocking);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!super.isLocked())
|
||||
return;
|
||||
while(relocking) {
|
||||
do {
|
||||
long wt = timeLeft0();
|
||||
if(wt == 0) {
|
||||
unlock();
|
||||
return;
|
||||
}
|
||||
super.waitHere(wt);
|
||||
}
|
||||
} while(relocking);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,19 +84,19 @@ public class Lock extends SimpleLock {
|
|||
return;
|
||||
long start = System.currentTimeMillis();
|
||||
if(!isTimed) {
|
||||
while(relocking) {
|
||||
do {
|
||||
long sectionOffset = System.currentTimeMillis() - start;
|
||||
long wt = timeout - sectionOffset;
|
||||
if(wt == 0)
|
||||
break;
|
||||
super.waitHere(wt);
|
||||
}
|
||||
} while(relocking);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!super.isLocked())
|
||||
return;
|
||||
while(relocking) {
|
||||
do {
|
||||
long wt = timeLeft0();
|
||||
if(wt == 0) {
|
||||
unlock();
|
||||
|
@ -106,7 +107,7 @@ public class Lock extends SimpleLock {
|
|||
if(wt == 0)
|
||||
break;
|
||||
super.waitHere(wt);
|
||||
}
|
||||
} while(relocking);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue