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++)


Reply via email to