[Udt-java-commits] SF.net SVN: udt-java:[31] udt-java/trunk/src
Status: Alpha
Brought to you by:
bschuller
From: <bsc...@us...> - 2010-04-29 21:33:27
|
Revision: 31 http://udt-java.svn.sourceforge.net/udt-java/?rev=31&view=rev Author: bschuller Date: 2010-04-29 21:33:20 +0000 (Thu, 29 Apr 2010) Log Message: ----------- simpler and faster ;) Modified Paths: -------------- udt-java/trunk/src/main/java/udt/ServerSession.java udt-java/trunk/src/main/java/udt/UDTOutputStream.java udt-java/trunk/src/main/java/udt/UDTSender.java udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java udt-java/trunk/src/main/java/udt/sender/SenderLossList.java udt-java/trunk/src/main/java/udt/util/ReceiveFile.java udt-java/trunk/src/main/java/udt/util/SendFile.java udt-java/trunk/src/test/java/udt/TestList.java udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java Removed Paths: ------------- udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java udt-java/trunk/src/test/java/udt/NullCongestionControl.java Modified: udt-java/trunk/src/main/java/udt/ServerSession.java =================================================================== --- udt-java/trunk/src/main/java/udt/ServerSession.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/ServerSession.java 2010-04-29 21:33:20 UTC (rev 31) @@ -43,7 +43,6 @@ import udt.packets.Destination; import udt.packets.KeepAlive; import udt.packets.Shutdown; -import udt.util.MeanValue; /** * server side session in client-server mode Modified: udt-java/trunk/src/main/java/udt/UDTOutputStream.java =================================================================== --- udt-java/trunk/src/main/java/udt/UDTOutputStream.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/UDTOutputStream.java 2010-04-29 21:33:20 UTC (rev 31) @@ -36,8 +36,6 @@ /** * UDTOutputStream provides a UDT version of {@link OutputStream} - * - * */ public class UDTOutputStream extends OutputStream{ @@ -79,6 +77,19 @@ } /** + * This method signals the UDT sender that it can pause the + * sending thread. The UDT sender will resume when the next + * write() call is executed.<br/> + * For example, one can use this method on the receiving end + * of a file transfer, to save some CPU time which would otherwise + * be consumed by the sender thread. + */ + public void pauseOutput()throws IOException{ + socket.getSender().pause(); + } + + + /** * close this output stream */ @Override Modified: udt-java/trunk/src/main/java/udt/UDTSender.java =================================================================== --- udt-java/trunk/src/main/java/udt/UDTSender.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/UDTSender.java 2010-04-29 21:33:20 UTC (rev 31) @@ -50,7 +50,6 @@ import udt.packets.KeepAlive; import udt.packets.NegativeAcknowledgement; import udt.sender.SenderLossList; -import udt.sender.SenderLossListEntry; import udt.util.MeanValue; import udt.util.UDTStatistics; import udt.util.UDTThreadFactory; @@ -72,13 +71,16 @@ private final UDTStatistics statistics; - //sendLossList store the sequence numbers of lost packets - //feed back by the receiver through NAK pakets + //senderLossList stores the sequence numbers of lost packets + //fed back by the receiver through NAK pakets private final SenderLossList senderLossList; + //sendBuffer stores the sent data packets and their sequence numbers private final Map<Long,DataPacket>sendBuffer; + //sendQueue contains the packets to send private final BlockingQueue<DataPacket>sendQueue; + //thread reading packets from send queue and sending them private Thread senderThread; @@ -101,10 +103,15 @@ private volatile boolean stopped=false; - private final CountDownLatch startLatch=new CountDownLatch(1); + private volatile boolean paused=false; + //used to signal that the sender should start to send + private volatile CountDownLatch startLatch=new CountDownLatch(1); + + //used by the sender to wait for an ACK private final AtomicReference<CountDownLatch> waitForAckLatch=new AtomicReference<CountDownLatch>(); + //used by the sender to wait for an ACK of a certain sequence number private final AtomicReference<CountDownLatch> waitForSeqAckLatch=new AtomicReference<CountDownLatch>(); public UDTSender(UDTSession session,UDPEndPoint endpoint){ @@ -145,9 +152,12 @@ Runnable r=new Runnable(){ public void run(){ try{ - //wait until explicitely started - startLatch.await(); - senderAlgorithm(); + while(!stopped){ + //wait until explicitely (re)started + startLatch.await(); + paused=false; + senderAlgorithm(); + } }catch(InterruptedException ie){ ie.printStackTrace(); } @@ -262,7 +272,7 @@ waitForAckLatch.get().countDown(); for(Integer i: nak.getDecodedLossInfo()){ - senderLossList.insert(new SenderLossListEntry(i)); + senderLossList.insert(Long.valueOf(i)); } session.getCongestionControl().onNAK(nak.getDecodedLossInfo()); session.getSocket().getReceiver().resetEXPTimer(); @@ -296,18 +306,18 @@ /** * sender algorithm */ - MeanValue v=new MeanValue("",true); + MeanValue v=new MeanValue("",true,128); public void senderAlgorithm()throws InterruptedException, IOException{ - while(!stopped){ + while(!paused){ long iterationStart=Util.getCurrentTime(); //last packet send time? //if the sender's loss list is not empty - SenderLossListEntry entry=senderLossList.getFirstEntry(); - if (entry!=null) { + if (!senderLossList.isEmpty()) { v.begin(); + Long entry=senderLossList.getFirstEntry(); + v.end(); handleResubmit(entry); - v.end(); } else @@ -338,7 +348,7 @@ //wait if(largestSentSequenceNumber % 16 !=0){ - double snd=100;//session.getCongestionControl().getSendInterval(); + double snd=session.getCongestionControl().getSendInterval(); long passed=Util.getCurrentTime()-iterationStart; int x=0; while(snd-passed>0){ @@ -357,8 +367,8 @@ * re-submits an entry from the sender loss list * @param entry */ - protected void handleResubmit(SenderLossListEntry entry){ - long seqNumber = entry.getSequenceNumber(); + protected void handleResubmit(Long seqNumber){ + //long seqNumber=entry.getSequenceNumber(); //TODO //if the current seqNumber is 16n,check the timeOut in the //loss list and send a message drop request. @@ -383,7 +393,7 @@ protected void putUnacknowledgedPacketsIntoLossList(){ synchronized (sendLock) { for(Long l: sendBuffer.keySet()){ - senderLossList.insert(new SenderLossListEntry(l)); + senderLossList.insert(l); } } } @@ -432,7 +442,7 @@ * * @throws InterruptedException */ - public synchronized void waitForAck(long sequenceNumber)throws InterruptedException{ + public void waitForAck(long sequenceNumber)throws InterruptedException{ while(!session.isShutdown() && !haveAcknowledgementFor(sequenceNumber)){ waitForSeqAckLatch.set(new CountDownLatch(1)); waitForSeqAckLatch.get().await(10, TimeUnit.MILLISECONDS); @@ -443,7 +453,7 @@ * wait for the next acknowledge * @throws InterruptedException */ - public synchronized void waitForAck()throws InterruptedException{ + public void waitForAck()throws InterruptedException{ waitForAckLatch.set(new CountDownLatch(1)); waitForAckLatch.get().await(1000, TimeUnit.MILLISECONDS); } @@ -452,4 +462,9 @@ public void stop(){ stopped=true; } + + public void pause(){ + startLatch=new CountDownLatch(1); + paused=true; + } } Modified: udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java =================================================================== --- udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/packets/Acknowledgement.java 2010-04-29 21:33:20 UTC (rev 31) @@ -33,7 +33,6 @@ package udt.packets; import java.io.ByteArrayOutputStream; -import udt.UDTPacket; import udt.UDTReceiver; import udt.UDTSender; Modified: udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java =================================================================== --- udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/packets/NegativeAcknowledgement.java 2010-04-29 21:33:20 UTC (rev 31) @@ -37,8 +37,6 @@ import java.util.ArrayList; import java.util.List; -import udt.packets.ControlPacket.ControlPacketType; - /** * NAK carries information about lost packets * Deleted: udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java =================================================================== --- udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/sender/SenderListEntry.java 2010-04-29 21:33:20 UTC (rev 31) @@ -1,69 +0,0 @@ -/********************************************************************************* - * Copyright (c) 2010 Forschungszentrum Juelich GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * (1) Redistributions of source code must retain the above copyright notice, - * this list of conditions and the disclaimer at the end. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * DISCLAIMER - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - *********************************************************************************/ - -package udt.sender; - -/** - * stores a data packet sequence number and the time it was sent - */ -public class SenderListEntry implements Comparable<SenderListEntry>{ - - private final long sequenceNumber; - //departure time - private final long sentTime; - - public SenderListEntry(long sequenceNumber, long sentTime){ - this.sequenceNumber= sequenceNumber; - this.sentTime= sentTime; - } - - public long getSequenceNumber() { - return sequenceNumber; - } - - public long getSentTime() { - return sentTime; - } - - public String toString(){ - return sequenceNumber+"[time="+sentTime+"]"; - } - - - //used to order the entries in order of increasing sequence numbers - public int compareTo(SenderListEntry o) { - return (int)(sequenceNumber-o.sequenceNumber); - } - - - -} Modified: udt-java/trunk/src/main/java/udt/sender/SenderLossList.java =================================================================== --- udt-java/trunk/src/main/java/udt/sender/SenderLossList.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/sender/SenderLossList.java 2010-04-29 21:33:20 UTC (rev 31) @@ -31,37 +31,47 @@ *********************************************************************************/ package udt.sender; -import java.util.concurrent.PriorityBlockingQueue; +import java.util.LinkedList; /** * stores the sequence number of the lost packets in increasing order */ public class SenderLossList { - private final PriorityBlockingQueue<SenderLossListEntry>backingList; + private final LinkedList<Long>backingList; /** * create a new sender lost list */ public SenderLossList(){ - backingList = new PriorityBlockingQueue<SenderLossListEntry>(32); + backingList = new LinkedList<Long>(); } - public void insert(SenderLossListEntry obj){ + public void insert(Long obj){ synchronized (backingList) { - if(!backingList.contains(obj))backingList.add(obj); + if(!backingList.contains(obj)){ + if(backingList.isEmpty())backingList.add(obj); + else{ + for(int i=0;i<backingList.size();i++){ + if(obj<backingList.getFirst()){ + backingList.add(i,obj); + } + } + } + } } } public void remove(long seqNo){ - backingList.remove(new SenderLossListEntry(seqNo)); + synchronized (backingList) { + backingList.remove(seqNo); + } } /** - * retrieves the loss list entry with the lowest sequence number and removes - * it from the loss list + * retrieves the loss list entry with the lowest sequence number */ - public SenderLossListEntry getFirstEntry(){ + public Long getFirstEntry(){ return backingList.poll(); } @@ -69,10 +79,6 @@ return backingList.isEmpty(); } - public long size(){ - return backingList.size(); - } - public String toString(){ return backingList.toString(); } Deleted: udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java =================================================================== --- udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/sender/SenderLossListEntry.java 2010-04-29 21:33:20 UTC (rev 31) @@ -1,100 +0,0 @@ -/********************************************************************************* - * Copyright (c) 2010 Forschungszentrum Juelich GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * (1) Redistributions of source code must retain the above copyright notice, - * this list of conditions and the disclaimer at the end. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * DISCLAIMER - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - *********************************************************************************/ - -package udt.sender; - -import udt.util.Util; - -/** - * the sender loss list stores information about lost data packets on the - * sender side, ordered by increasing sequence number - * @see SenderLossListEntry - */ -public class SenderLossListEntry implements Comparable<SenderLossListEntry>{ - - private final long sequenceNumber ; - - //time when the loss list entry was created - private final long storageTime; - - public SenderLossListEntry(long sequenceNumber){ - if(sequenceNumber<0)throw new IllegalArgumentException(); - this.sequenceNumber = sequenceNumber; - storageTime=Util.getCurrentTime(); - } - - public long getSequenceNumber() { - return sequenceNumber; - } - - /** - * get the age of this loss sequence number - * @return - */ - public long getAge() { - return Util.getCurrentTime()-storageTime; - } - - /** - * used to order entries by increasing sequence number - */ - public int compareTo(SenderLossListEntry o) { - return (int)(sequenceNumber-o.sequenceNumber); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result - + (int) (sequenceNumber ^ (sequenceNumber >>> 32)); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - SenderLossListEntry other = (SenderLossListEntry) obj; - if (sequenceNumber != other.sequenceNumber) - return false; - return true; - } - - public String toString(){ - return "lost-"+sequenceNumber; - } -} Deleted: udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java =================================================================== --- udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/sender/SentDataPacketsList.java 2010-04-29 21:33:20 UTC (rev 31) @@ -1,69 +0,0 @@ -/********************************************************************************* - * Copyright (c) 2010 Forschungszentrum Juelich GmbH - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * (1) Redistributions of source code must retain the above copyright notice, - * this list of conditions and the disclaimer at the end. Redistributions in - * binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * (2) Neither the name of Forschungszentrum Juelich GmbH nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * DISCLAIMER - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - *********************************************************************************/ - -package udt.sender; -import java.util.Iterator; -import java.util.concurrent.PriorityBlockingQueue; - -/** - * stores the sequence numbers of the data packets sent out, and the time of sending. - * Entries are ordered in order of increasing sequence number - * @see SenderListEntry - */ -public class SentDataPacketsList { - - private final PriorityBlockingQueue<SenderListEntry>listOfSentPacketSeqNo; - - public SentDataPacketsList(){ - listOfSentPacketSeqNo = new PriorityBlockingQueue<SenderListEntry>(64); - } - - public void insert(SenderListEntry obj){ - listOfSentPacketSeqNo.add(obj); - } - - public void remove(long seqNo){ - Iterator<SenderListEntry>iterator=listOfSentPacketSeqNo.iterator(); - while(iterator.hasNext()){ - SenderListEntry e=iterator.next(); - if(e.getSequenceNumber()==seqNo){ - iterator.remove(); - return; - } - } - } - - public boolean isEmpty(){ - return listOfSentPacketSeqNo.isEmpty(); - } - -} Modified: udt-java/trunk/src/main/java/udt/util/ReceiveFile.java =================================================================== --- udt-java/trunk/src/main/java/udt/util/ReceiveFile.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/util/ReceiveFile.java 2010-04-29 21:33:20 UTC (rev 31) @@ -89,7 +89,11 @@ bb.put((byte)0); out.write(readBuf, 0, bb.position()); + out.flush(); + //pause the sender to save some CPU time + out.pauseOutput(); + //read size info (an 4-byte int) byte[]sizeInfo=new byte[4]; @@ -146,7 +150,9 @@ } public static void usage(){ - System.out.println("Usage: java -cp .. udt.util.ReceiveFile <server_ip> <server_port> <remote_filename> <local_filename>"); + System.out.println("Usage: java -cp .. udt.util.ReceiveFile " + + "<server_ip> <server_port> <remote_filename> <local_filename> " + + "[--verbose] [--localPort=<port>] [--localIP=<ip>]"); } } Modified: udt-java/trunk/src/main/java/udt/util/SendFile.java =================================================================== --- udt-java/trunk/src/main/java/udt/util/SendFile.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/main/java/udt/util/SendFile.java 2010-04-29 21:33:20 UTC (rev 31) @@ -108,7 +108,8 @@ } public static void usage(){ - System.out.println("Usage: java -cp ... udt.util.SendFile <server_port>"); + System.out.println("Usage: java -cp ... udt.util.SendFile <server_port> " + + "[--verbose] [--localPort=<port>] [--localIP=<ip>]"); } public static class RequestRunner implements Runnable{ Deleted: udt-java/trunk/src/test/java/udt/NullCongestionControl.java =================================================================== --- udt-java/trunk/src/test/java/udt/NullCongestionControl.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/test/java/udt/NullCongestionControl.java 2010-04-29 21:33:20 UTC (rev 31) @@ -1,56 +0,0 @@ -package udt; - -import java.util.List; - -public class NullCongestionControl implements CongestionControl { - - private final UDTSession session; - - public NullCongestionControl(UDTSession session){ - this.session=session; - } - - public void close() { - } - - public long getCongestionWindowSize() { - return Long.MAX_VALUE; - } - - public double getSendInterval() { - return 0; - } - - public void init() { - } - - public void onACK(long ackSeqno) { - } - - public void onNAK(List<Integer> lossInfo) { - } - - public void onPacketReceive(long packetSeqNo) { - } - - public void onPacketSend(long packetSeqNo) { - } - - public void onTimeout() { - } - - public void updatePacketArrivalRate(long rate, long linkCapacity) { - } - - public void setRTT(long rtt, long rttVar) { - } - - public long getEstimatedLinkCapacity() { - return 0; - } - - public long getPacketArrivalRate() { - return 0; - } - -} Modified: udt-java/trunk/src/test/java/udt/TestList.java =================================================================== --- udt-java/trunk/src/test/java/udt/TestList.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/test/java/udt/TestList.java 2010-04-29 21:33:20 UTC (rev 31) @@ -10,7 +10,6 @@ import udt.receiver.PacketHistoryWindow; import udt.receiver.PacketPairWindow; import udt.sender.SenderLossList; -import udt.sender.SenderLossListEntry; import udt.util.CircularArray; /* @@ -79,14 +78,14 @@ } public void testSenderLossList1(){ - SenderLossListEntry A = new SenderLossListEntry(7); - SenderLossListEntry B = new SenderLossListEntry(8); - SenderLossListEntry C = new SenderLossListEntry(1); + Long A=7l; + Long B=8l; + Long C=1l; SenderLossList l=new SenderLossList(); l.insert(A); l.insert(B); l.insert(C); - SenderLossListEntry oldest=l.getFirstEntry(); + Long oldest=l.getFirstEntry(); assertEquals(C,oldest); } @@ -128,7 +127,6 @@ assertFalse(p.isControlPacket()); assertEquals(54,p.getPacketSequenceNumber()); - } } Modified: udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java =================================================================== --- udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java 2010-04-29 15:26:39 UTC (rev 30) +++ udt-java/trunk/src/test/java/udt/performance/TestUDTLargeData.java 2010-04-29 21:33:20 UTC (rev 31) @@ -20,7 +20,7 @@ boolean running=false; //how many - int num_packets=20; + int num_packets=100; //how large is a single packet int size=1*1024*1024; @@ -31,7 +31,6 @@ public void test1()throws Exception{ Logger.getLogger("udt").setLevel(Level.INFO); - //System.setProperty(UDTSession.CC_CLASS, NullCongestionControl.class.getName()); UDTReceiver.dropRate=0; TIMEOUT=Integer.MAX_VALUE; doTest(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |