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