geforkt von Mirrors/FastAsyncWorldEdit
Only unlock if previously locked (#2489)
Dieser Commit ist enthalten in:
Ursprung
1996a38b46
Commit
46dd71e807
@ -100,7 +100,6 @@ import java.util.TimeZone;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -406,7 +405,8 @@ public class LocalSession implements TextureHolder {
|
||||
*/
|
||||
public void clearHistory() {
|
||||
//FAWE start
|
||||
if (Fawe.isMainThread() && !historyWriteLock.tryLock()) {
|
||||
boolean mainThread = Fawe.isMainThread();
|
||||
if (mainThread && !historyWriteLock.tryLock()) {
|
||||
// Do not make main thread wait if we cannot immediately clear history (on player logout usually)
|
||||
TaskManager.taskManager().async(this::clearHistoryTask);
|
||||
return;
|
||||
@ -414,9 +414,12 @@ public class LocalSession implements TextureHolder {
|
||||
try {
|
||||
clearHistoryTask();
|
||||
} finally {
|
||||
// only if we are on the main thread, we ever called tryLock -> need to unlock again
|
||||
if (mainThread) {
|
||||
historyWriteLock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void clearHistoryTask() {
|
||||
historyWriteLock.lock();
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren