forked from I2P_Developers/i2p.i2p
NetDB: Don't wait for all RIs to be read in on Android
to tell the router we've loaded them, lets i2ptunnel start faster.
This commit is contained in:
@ -40,6 +40,7 @@ import net.i2p.util.I2PThread;
|
|||||||
import net.i2p.util.Log;
|
import net.i2p.util.Log;
|
||||||
import net.i2p.util.SecureDirectory;
|
import net.i2p.util.SecureDirectory;
|
||||||
import net.i2p.util.SecureFileOutputStream;
|
import net.i2p.util.SecureFileOutputStream;
|
||||||
|
import net.i2p.util.SystemVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write out keys to disk when we get them and periodically read ones we don't know
|
* Write out keys to disk when we get them and periodically read ones we don't know
|
||||||
@ -434,10 +435,19 @@ public class PersistentDataStore extends TransientDataStore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Collections.shuffle(toRead, _context.random());
|
Collections.shuffle(toRead, _context.random());
|
||||||
|
int i = 0;
|
||||||
for (File file : toRead) {
|
for (File file : toRead) {
|
||||||
Hash key = getRouterInfoHash(file.getName());
|
Hash key = getRouterInfoHash(file.getName());
|
||||||
if (key != null && !isKnown(key))
|
if (key != null && !isKnown(key)) {
|
||||||
(new ReadRouterJob(file, key)).runJob();
|
(new ReadRouterJob(file, key)).runJob();
|
||||||
|
if (i++ == 150 && SystemVersion.isAndroid() && !_initialized) {
|
||||||
|
// Can take 2 minutes to load them all on Android,
|
||||||
|
// after we have already built expl. tunnels.
|
||||||
|
// This is enough to let i2ptunnel get started.
|
||||||
|
// Do not set _initialized yet so we don't start rescanning.
|
||||||
|
_context.router().setNetDbReady();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user