Author: jflesch
Date: 2007-08-06 18:08:33 +0000 (Mon, 06 Aug 2007)
New Revision: 14493
Modified:
trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java
trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java
trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
Log:
When using multithreaded reading on the socket, don't read when another process
is writing a lot of data => it may generate and block many threads
Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java 2007-08-06 17:40:03 UTC
(rev 14492)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java 2007-08-06 18:08:33 UTC
(rev 14493)
@@ -157,8 +157,19 @@
*/
public void run() {
while(true) {
- FCPMessage latestMessage = readMessage();
+ FCPMessage latestMessage;
+ /* note : if multithreaded, stop reading when a thread
is writing,
+ * else reading, parsing and answering messages
while a thread is
+ * sending a big file may generate a lot of
threads (and warnings because
+ * of a possible freeze)
+ */
+ if (MULTITHREADED)
+ connection.addToWriterQueue();
+ latestMessage = readMessage();
+ if (MULTITHREADED)
+ connection.removeFromWriterQueue();
+
Logger.verbose(this, "Message received. Notifying
observers");
if(latestMessage != null) {
Modified: trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java 2007-08-06 17:40:03 UTC
(rev 14492)
+++ trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java 2007-08-06 18:08:33 UTC
(rev 14493)
@@ -112,7 +112,8 @@
unfoldButton = new JButton("<");
unfoldButton.addActionListener(this);
- peerPanel = new PeerMonitorPanel(this, core.getQueueManager(),
core.getConfig(), core.getMainWindow());
+ peerPanel = new PeerMonitorPanel(this, core.getQueueManager(),
core.getConfig(),
+ core.getMainWindow());
peerPanel.addObserver(this);
peerPanel.getFoldButton().addActionListener(this);
Modified: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
2007-08-06 17:40:03 UTC (rev 14492)
+++ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
2007-08-06 18:08:33 UTC (rev 14493)
@@ -408,7 +408,9 @@
}
}
- peerList.setListData(peers);
+ /* can it happen ?! */
+ if (peerList != null && peers != null)
+ peerList.setListData(peers);
}
public synchronized void setNodeInfos(Hashtable infos) {
Modified: trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
2007-08-06 17:40:03 UTC (rev 14492)
+++ trunk/apps/Thaw/src/thaw/plugins/transferLogs/TransferTable.java
2007-08-06 18:08:33 UTC (rev 14493)
@@ -443,6 +443,8 @@
if (model.getPage() > pageMax)
model.setPage(0);
+ pageSelecter.setSelectedItem("0");
+
pageSelecter.removeAllItems();
for (int i = 0 ; i <= pageMax ; i++)