Stop using monitored locks in Channel

This commit is contained in:
P0nk
2022-08-11 11:55:56 +02:00
parent c7af125afc
commit b6c17e944a

View File

@@ -28,11 +28,6 @@ import net.netty.ChannelServer;
import net.packet.Packet;
import net.server.PlayerStorage;
import net.server.Server;
import net.server.audit.LockCollector;
import net.server.audit.locks.*;
import net.server.audit.locks.factory.MonitoredReadLockFactory;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import net.server.audit.locks.factory.MonitoredWriteLockFactory;
import net.server.services.BaseService;
import net.server.services.ServicesManager;
import net.server.services.type.ChannelServices;
@@ -58,6 +53,9 @@ import java.nio.file.Paths;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import static java.util.concurrent.TimeUnit.*;
@@ -106,10 +104,9 @@ public final class Channel {
private Set<Integer> ongoingCathedralGuests = null;
private long ongoingStartTime;
private final MonitoredReentrantReadWriteLock merchantLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.MERCHANT, true);
private final MonitoredReadLock merchRlock = MonitoredReadLockFactory.createLock(merchantLock);
private final MonitoredWriteLock merchWlock = MonitoredWriteLockFactory.createLock(merchantLock);
private MonitoredReentrantLock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.CHANNEL, true);
private final Lock lock = new ReentrantLock(true);;
private final Lock merchRlock;
private final Lock merchWlock;
public Channel(final int world, final int channel, long startTime) {
this.world = world;
@@ -120,6 +117,10 @@ public final class Channel {
this.port = BASE_PORT + (this.channel - 1) + (world * 100);
this.ip = YamlConfig.config.server.HOST + ":" + port;
ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock(true);
this.merchRlock = rwLock.readLock();
this.merchWlock = rwLock.writeLock();
try {
this.channelServer = initServer(port, world, channel);
expedType.addAll(Arrays.asList(ExpeditionType.values()));
@@ -213,15 +214,6 @@ public final class Channel {
}
closeChannelServices();
disposeLocks();
}
private void disposeLocks() {
LockCollector.getInstance().registerDisposeAction(() -> emptyLocks());
}
private void emptyLocks() {
lock = lock.dispose();
}
private void closeAllMerchants() {