From 8f19da515c7351129a45a8561c2c5d017f52665b Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 14 Apr 2013 16:54:19 +0000 Subject: [PATCH] Reverting changes of LongPollingSystem. --- .../polling/LongPollableResource.java | 2 -- .../gempukku/polling/LongPollingSystem.java | 34 ++++++++----------- .../game/state/GameCommunicationChannel.java | 8 +---- .../draft/DraftCommunicationChannel.java | 9 ++--- .../lotro/game/ChatCommunicationChannel.java | 11 ++---- .../lotro/hall/HallCommunicationChannel.java | 7 +--- 6 files changed, 21 insertions(+), 50 deletions(-) diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollableResource.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollableResource.java index 51232b966..fa45babec 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollableResource.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollableResource.java @@ -10,6 +10,4 @@ public interface LongPollableResource { public boolean registerRequest(WaitingRequest waitingRequest); public void deregisterRequest(WaitingRequest waitingRequest); - - public void requestWaitingNotification(); } diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollingSystem.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollingSystem.java index 5499e2b2a..9771b5be0 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollingSystem.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/polling/LongPollingSystem.java @@ -66,30 +66,24 @@ public class LongPollingSystem { @Override public void run() { while (true) { - try { - Set resourcesCopy; - synchronized (_waitingActions) { - resourcesCopy = new HashSet(_waitingActions); - } + Set resourcesCopy; + synchronized (_waitingActions) { + resourcesCopy = new HashSet(_waitingActions); + } - long now = System.currentTimeMillis(); - Iterator iterator = resourcesCopy.iterator(); - while (iterator.hasNext()) { - ResourceWaitingRequest waitingRequest = iterator.next(); - if (waitingRequest.getLongPollingResource().wasProcessed()) + long now = System.currentTimeMillis(); + Iterator iterator = resourcesCopy.iterator(); + while (iterator.hasNext()) { + ResourceWaitingRequest waitingRequest = iterator.next(); + if (waitingRequest.getLongPollingResource().wasProcessed()) + _waitingActions.remove(waitingRequest); + else { + if (waitingRequest.getStart() + _pollingLength < now) { + waitingRequest.getLongPollableResource().deregisterRequest(waitingRequest); _waitingActions.remove(waitingRequest); - else { - if (waitingRequest.getStart() + _pollingLength < now) { - waitingRequest.getLongPollableResource().deregisterRequest(waitingRequest); - _waitingActions.remove(waitingRequest); - execute(waitingRequest.getLongPollingResource()); - } else { - waitingRequest.getLongPollableResource().requestWaitingNotification(); - } + execute(waitingRequest.getLongPollingResource()); } } - } catch (Exception exp) { - _log.error("Failure while processing polling requests", exp); } pause(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameCommunicationChannel.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameCommunicationChannel.java index e17b57e9e..b243bc14b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameCommunicationChannel.java @@ -3,6 +3,7 @@ package com.gempukku.lotro.game.state; import com.gempukku.lotro.common.Token; import com.gempukku.lotro.communication.GameStateListener; import com.gempukku.lotro.game.PhysicalCard; +import static com.gempukku.lotro.game.state.GameEvent.Type.*; import com.gempukku.lotro.logic.decisions.AwaitingDecision; import com.gempukku.lotro.logic.timing.GameStats; import com.gempukku.polling.LongPollableResource; @@ -10,8 +11,6 @@ import com.gempukku.polling.WaitingRequest; import java.util.*; -import static com.gempukku.lotro.game.state.GameEvent.Type.*; - public class GameCommunicationChannel implements GameStateListener, LongPollableResource { private List _events = Collections.synchronizedList(new LinkedList()); private String _self; @@ -50,11 +49,6 @@ public class GameCommunicationChannel implements GameStateListener, LongPollable return false; } - @Override - public void requestWaitingNotification() { - // Ignore, we do not remove user from it - } - private synchronized void appendEvent(GameEvent event) { _events.add(event); if (_waitingRequest != null) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java index d9d2efd17..4b7563b70 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DraftCommunicationChannel.java @@ -6,10 +6,10 @@ import com.gempukku.polling.WaitingRequest; public class DraftCommunicationChannel implements LongPollableResource { private int _channelNumber; + private long _lastAccessed; private String _cardChoiceOnClient; private volatile boolean _changed; - private volatile long _lastAccessed; private volatile WaitingRequest _waitingRequest; public DraftCommunicationChannel(int channelNumber) { @@ -34,7 +34,7 @@ public class DraftCommunicationChannel implements LongPollableResource { } @Override - public synchronized boolean registerRequest(WaitingRequest waitingRequest) { + public boolean registerRequest(WaitingRequest waitingRequest) { if (_changed) return true; @@ -42,11 +42,6 @@ public class DraftCommunicationChannel implements LongPollableResource { return false; } - @Override - public void requestWaitingNotification() { - updateLastAccess(); - } - public synchronized void draftChanged() { _changed = true; if (_waitingRequest != null) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/ChatCommunicationChannel.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/ChatCommunicationChannel.java index 3dd0bd66a..bc18b69d5 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/ChatCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/ChatCommunicationChannel.java @@ -10,7 +10,7 @@ import java.util.List; public class ChatCommunicationChannel implements ChatRoomListener, LongPollableResource { private List _messages = new LinkedList(); - private volatile long _lastConsumed = System.currentTimeMillis(); + private long _lastConsumed = System.currentTimeMillis(); private volatile WaitingRequest _waitingRequest; @Override @@ -27,11 +27,6 @@ public class ChatCommunicationChannel implements ChatRoomListener, LongPollableR return false; } - @Override - public void requestWaitingNotification() { - updateLastAccess(); - } - @Override public synchronized void messageReceived(ChatMessage message) { _messages.add(message); @@ -53,11 +48,11 @@ public class ChatCommunicationChannel implements ChatRoomListener, LongPollableR return _messages.size() > 0; } - private void updateLastAccess() { + private synchronized void updateLastAccess() { _lastConsumed = System.currentTimeMillis(); } - public long getLastAccessed() { + public synchronized long getLastAccessed() { return _lastConsumed; } } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java index f44a29cc9..a91c5527e 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallCommunicationChannel.java @@ -10,13 +10,13 @@ import java.util.*; public class HallCommunicationChannel implements LongPollableResource { private int _channelNumber; + private long _lastConsumed; private String _lastMotd; private Map> _tournamentQueuePropsOnClient = new LinkedHashMap>(); private Map> _tournamentPropsOnClient = new LinkedHashMap>(); private Map> _tablePropsOnClient = new LinkedHashMap>(); private Set _playedGames = new HashSet(); private volatile boolean _changed; - private volatile long _lastConsumed; private volatile WaitingRequest _waitingRequest; public HallCommunicationChannel(int channelNumber) { @@ -37,11 +37,6 @@ public class HallCommunicationChannel implements LongPollableResource { return false; } - @Override - public void requestWaitingNotification() { - updateLastAccess(); - } - public synchronized void hallChanged() { _changed = true; if (_waitingRequest != null) {