On Jan 10, 2008, at 5:23 PM, Matthew Toseland wrote:

> On Tuesday 08 January 2008 00:46, you wrote:
>> Author: robert
>> Date: 2008-01-08 00:46:35 +0000 (Tue, 08 Jan 2008)
>> New Revision: 16962
>>
>> Modified:
>>   trunk/freenet/src/freenet/io/xfer/BlockReceiver.java
>>   trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
>> Log:
>> trivial: comments, logging, readability
>
> Doesn't look that way to me e.g. timeAllSent affects when we kill the
> transfer. What's going on here?

There was more than one problem with timeAllSent... there are a number  
of commits regarding the block transmittion/reception. This change  
actually is trivial because the only time that timeAllSent was set is  
on breaking out of the loop, so I moved it to the break statement so  
that one can see that.

--
Robert Hailey

>
>>
>>
>> Modified: trunk/freenet/src/freenet/io/xfer/BlockReceiver.java
>> ===================================================================
>> --- trunk/freenet/src/freenet/io/xfer/BlockReceiver.java     2008-01-07  
>> 20:56:43
> UTC (rev 16961)
>> +++ trunk/freenet/src/freenet/io/xfer/BlockReceiver.java     2008-01-08  
>> 00:46:35
> UTC (rev 16962)
>> @@ -66,6 +66,7 @@
>>      
>>      public byte[] receive() throws RetrievalException {
>>              int consecutiveMissingPacketReports = 0;
>> +            boolean logMINOR=Logger.shouldLog(Logger.MINOR, this);
>>              try {
>>              while (!_prb.allReceived()) {
>>                      Message m1;
>> @@ -80,7 +81,7 @@
>>                 _prb.abort(RetrievalException.SENDER_DIED,  
>> "Disconnected
> during receive");
>>                 throw new
> RetrievalException(RetrievalException.SENDER_DISCONNECTED);
>>             }
>> -            if(Logger.shouldLog(Logger.MINOR, this))
>> +            if(logMINOR)
>>              Logger.minor(this, "Received "+m1);
>>             if ((m1 != null) &&  
>> m1.getSpec().equals(DMT.sendAborted)) {
>>                              _prb.abort(m1.getInt(DMT.REASON), 
>> m1.getString(DMT.DESCRIPTION));
>> @@ -112,7 +113,7 @@
>>                                              }
>>                                      }
>>                              }
>> -                            if(Logger.shouldLog(Logger.MINOR, this))
>> +                            if(logMINOR)
>>                                      Logger.minor(this, "Missing: 
>> "+missing.size());
>>                              if (missing.size() > 0) {
>>                                      Message mn = 
>> DMT.createMissingPacketNotification(_uid, missing);
>>
>> Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
>> ===================================================================
>> --- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java   
>> 2008-01-07
> 20:56:43 UTC (rev 16961)
>> +++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java   
>> 2008-01-08
> 00:46:35 UTC (rev 16962)
>> @@ -84,9 +84,13 @@
>>                                      try {
>>                                              while (true) {
>>                                                      
>> synchronized(_senderThread) {
>> -                                                            
>> if(_unsent.size() != 0) break;
>> +                                                            
>> if(_unsent.size() != 0) {
>> +                                                                    
>> timeAllSent = -1;
>> +                                                                    break;
>> +                                                            }
>>                                                              // No unsent 
>> packets
>>                                                              if(getNumSent() 
>> == _prb.getNumPackets()) {
>> +                                                                    //No 
>> unreceived packets
>>                                                                      
>> if(Logger.shouldLog(Logger.MINOR, this))
>>                                                                              
>> Logger.minor(this, "Sent all blocks, none unsent");
>>                                                                      
>> if(timeAllSent <= 0)
>> @@ -96,7 +100,6 @@
>>                                                              
>> _senderThread.wait(10*1000);
>>                                                      }
>>                                              }
>> -                                            timeAllSent = -1;
>>                                      } catch (InterruptedException e) {
>>                                      } catch (AbortedException e) {
>>                                              synchronized(_senderThread) {
>> @@ -136,9 +139,8 @@
>>                              }
>>                      }
>>
>> -                    /** @return True if _sendComplete */
>>                      private void delay(long startCycleTime) {
>> -                            
>> +                            //FIXME: startCycleTime is not used in this 
>> function, why is  
>> it passed
> in?
>>                              long startThrottle = System.currentTimeMillis();
>>
>>                              // Get the current inter-packet delay
>> @@ -164,6 +166,7 @@
>>                                      int x = (int) (Math.min(l, 120*1000));
>>                                      if(x > 0) {
>>                                              try {
>> +                                                    //FIXME: if the 
>> senderThread sleeps here for two minutes,  
>> that will
> timeout the receiver, no? Should this be a wait()?
>>                                                      Thread.sleep(x);
>>                                              } catch (InterruptedException 
>> e) {
>>                                                      // Ignore
>> @@ -239,6 +242,7 @@
>>                                      return false;
>>                              if (msg == null) {
>>                                      long now = System.currentTimeMillis();
>> +                                    //SEND_TIMEOUT (one minute) after all 
>> packets have been  
>> transmitted,
> terminate the send.
>>                                      if((timeAllSent > 0) && ((now - 
>> timeAllSent) > SEND_TIMEOUT) &&
>>                                                      (getNumSent() == 
>> _prb.getNumPackets())) {
>>                                              synchronized(_senderThread) {
>> @@ -280,9 +284,8 @@
>>                                              _senderThread.notifyAll();
>>                                      }
>>                                      return false;
>> -                            } else if(_sendComplete) {
>> -                                    // Terminated abnormally
>> -                                    return false;
>> +                            } else {
>> +                                    Logger.error(this, "Transmitter 
>> received unknown message
> type: "+msg.getSpec().getName());
>>                              }
>>                      }
>>              } catch (AbortedException e) {
>>
>> _______________________________________________
>> cvs mailing list
>> cvs at freenetproject.org
>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>>
>>
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl


Reply via email to