2006-04-27 jrandom
* Avoid a race in the message reply registry (thanks cervantes!)
This commit is contained in:
@ -1,4 +1,7 @@
|
||||
$Id: history.txt,v 1.462 2006/04/23 16:06:12 jrandom Exp $
|
||||
$Id: history.txt,v 1.463 2006/04/27 19:08:40 jrandom Exp $
|
||||
|
||||
2006-04-27 jrandom
|
||||
* Avoid a race in the message reply registry (thanks cervantes!)
|
||||
|
||||
2006-04-27 jrandom
|
||||
* Fixed the tunnel expiration desync code (thanks Complication!)
|
||||
|
@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
|
||||
*
|
||||
*/
|
||||
public class RouterVersion {
|
||||
public final static String ID = "$Revision: 1.402 $ $Date: 2006/04/23 16:06:15 $";
|
||||
public final static String ID = "$Revision: 1.403 $ $Date: 2006/04/27 19:08:41 $";
|
||||
public final static String VERSION = "0.6.1.17";
|
||||
public final static long BUILD = 1;
|
||||
public final static long BUILD = 2;
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
||||
System.out.println("Router ID: " + RouterVersion.ID);
|
||||
|
@ -194,21 +194,20 @@ public class OutboundMessageRegistry {
|
||||
public void renderStatusHTML(Writer out) throws IOException {}
|
||||
|
||||
private class CleanupTask implements SimpleTimer.TimedEvent {
|
||||
private List _removing;
|
||||
private long _nextExpire;
|
||||
public CleanupTask() {
|
||||
_removing = new ArrayList(4);
|
||||
_nextExpire = -1;
|
||||
}
|
||||
public void timeReached() {
|
||||
long now = _context.clock().now();
|
||||
List removing = new ArrayList(1);
|
||||
synchronized (_selectors) {
|
||||
for (int i = 0; i < _selectors.size(); i++) {
|
||||
MessageSelector sel = (MessageSelector)_selectors.get(i);
|
||||
if (sel == null) continue;
|
||||
long expiration = sel.getExpiration();
|
||||
if (expiration <= now) {
|
||||
_removing.add(sel);
|
||||
removing.add(sel);
|
||||
_selectors.remove(i);
|
||||
i--;
|
||||
} else if (expiration < _nextExpire || _nextExpire < now) {
|
||||
@ -216,9 +215,9 @@ public class OutboundMessageRegistry {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_removing.size() > 0) {
|
||||
for (int i = 0; i < _removing.size(); i++) {
|
||||
MessageSelector sel = (MessageSelector)_removing.get(i);
|
||||
if (removing.size() > 0) {
|
||||
for (int i = 0; i < removing.size(); i++) {
|
||||
MessageSelector sel = (MessageSelector)removing.get(i);
|
||||
OutNetMessage msg = null;
|
||||
List msgs = null;
|
||||
synchronized (_selectorToMessage) {
|
||||
@ -249,7 +248,6 @@ public class OutboundMessageRegistry {
|
||||
}
|
||||
}
|
||||
}
|
||||
_removing.clear();
|
||||
}
|
||||
|
||||
if (_nextExpire <= now)
|
||||
|
Reference in New Issue
Block a user