On Tuesday 18 December 2007 22:47, robert at freenetproject.org wrote:
> Author: robert
> Date: 2007-12-18 22:47:49 +0000 (Tue, 18 Dec 2007)
> New Revision: 16706
> 
> Modified:
>    trunk/freenet/src/freenet/node/CHKInsertSender.java
> Log:
> Restore previous behavior for AIMD (total RTT)

Okay, this commit:
- Reinstates completedTransfer(), exactly as it was.
- Deletes the unused variable completionTimedOut.
- Drops the timeout parameter from completed(timeout, success) as it is never 
used.
- And renames it from completed(success) to receivedNotice(success).

Now, combining the two:
- A few trivial code simplifications: if(x) blah(true) else blah(false) -> 
blah(x).
- Code simplifications in completed*() which don't have any practical impact 
although they change the logic: if(blah) blahInner = true -> blahInner = 
blah;
- Rename some threads.
- Delete Sender and merge it into AwaitingCompletion.
- Delete unused timeout parameter from completed() and rename to 
receivedNotice().
- Logging and comments.
> 
> Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/CHKInsertSender.java       2007-12-18 
> 22:15:14 
UTC (rev 16705)
> +++ trunk/freenet/src/freenet/node/CHKInsertSender.java       2007-12-18 
> 22:47:49 
UTC (rev 16706)
> @@ -33,9 +33,7 @@
>                * or failure of dependant transfers from that node?
>                * Includes timing out. */
>               boolean receivedCompletionNotice;
> -             /** Timed out - didn't receive completion notice in
> -              * the allotted time?? */
> -             boolean completionTimedOut;
> +
>               /** Was the notification of successful transfer? */
>               boolean completionSucceeded;
>               
> @@ -57,23 +55,32 @@
>                       freenet.support.Logger.OSThread.logPID(this);
>                       try {
>                               bt.send(node.executor);
> -                             if(bt.failedDueToOverload()) {
> -                                     this.completed(false, false);
> -                             } else {
> -                                     this.completed(false, true);
> -                             }
> +                             
> this.completedTransfer(bt.failedDueToOverload());
>                       } catch (Throwable t) {
> -                             this.completed(false, false);
> +                             this.completedTransfer(false);
>                               Logger.error(this, "Caught "+t, t);
>                       }
>               }
>               
> -             void completed(boolean timeout, boolean success) {
> -                     if (logMINOR) Logger.minor(this, 
> "CHKInsert-BackgroundTransfer complete 
(timeout="+timeout+", success="+success);
> -                     if (success && timeout)
> -                             throw new IllegalArgumentException("how can a 
> request successfully 
timeout?");
> +             void completedTransfer(boolean success) {
>                       synchronized(this) {
> -                             completionTimedOut = timeout;
> +                             transferSucceeded = success;
> +                             completedTransfer = true;
> +                             notifyAll();
> +                     }
> +                     synchronized(backgroundTransfers) {
> +                             backgroundTransfers.notifyAll();
> +                     }
> +                     if(!success) {
> +                             synchronized(CHKInsertSender.this) {
> +                                     transferTimedOut = true;
> +                                     CHKInsertSender.this.notifyAll();
> +                             }
> +                     }
> +             }
> +             
> +             void receivedNotice(boolean success) {
> +                     synchronized(this) {
>                               completionSucceeded = success;
>                               receivedCompletionNotice = true;
>                               notifyAll();
> @@ -86,8 +93,9 @@
>                                       transferTimedOut = true;
>                                       CHKInsertSender.this.notifyAll();
>                               }
> -                     }
> +                     }                       
>               }
> +             
>       }
>       
>       CHKInsertSender(NodeCHK myKey, long uid, byte[] headers, short htl, 
> @@ -701,7 +709,7 @@
>                                                       PeerNode p = 
> transfers[i].pn;
>                                                       if(p == pn) {
>                                                               boolean 
> anyTimedOut = m.getBoolean(DMT.ANY_TIMED_OUT);
> -                                                             
> transfers[i].completed(false, !anyTimedOut);
> +                                                             
> transfers[i].receivedNotice(!anyTimedOut);
>                                                               if(anyTimedOut) 
> {
>                                                                       
> synchronized(CHKInsertSender.this) {
>                                                                               
> if(!transferTimedOut) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20071219/b8d99ac3/attachment.pgp>

Reply via email to