Author: toad
Date: 2008-10-09 00:46:27 +0000 (Thu, 09 Oct 2008)
New Revision: 22973

Modified:
   trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
Log:
Prevent timeout when preallocating store.


Modified: trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-10-08 22:53:37 UTC (rev 22972)
+++ trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-10-09 00:46:27 UTC (rev 22973)
@@ -645,12 +645,12 @@
                                }
                                headerFile.delete();
                                dataFile.delete();
-                               setStoreFileSize(storeFileSize);
+                               setStoreFileSize(storeFileSize, true);
                        }
                }

                WrapperManager.signalStarting(10 * 60 * 1000); // 10minutes, 
for filesystem that support no sparse file.
-               setStoreFileSize(storeFileSize);
+               setStoreFileSize(storeFileSize, true);

                return newStore;
        }
@@ -784,7 +784,7 @@
         * 
         * @param storeFileSize
         */
-       private void setStoreFileSize(long storeFileSize) {
+       private void setStoreFileSize(long storeFileSize, boolean starting) {
                try {
                        long oldMetaLen = metaRAF.length();
                        long oldHdLen = hdRAF.length();
@@ -821,6 +821,8 @@
                                        if(oldHdLen % (1024*1024*1024L) == 0) {
                                                random.nextBytes(seed);
                                                mt = new MersenneTwister(seed);
+                                               if(starting)
+                                                       
WrapperManager.signalStarting(5*60*1000);
                                        }
                                }
                        }
@@ -1056,7 +1058,7 @@

                                public void init() {
                                        if (storeSize > _prevStoreSize)
-                                               setStoreFileSize(storeSize);
+                                               setStoreFileSize(storeSize, 
false);

                                        optimialK = 
BloomFilter.optimialK(bloomFilterSize, storeSize);
                                        configLock.writeLock().lock();
@@ -1118,7 +1120,7 @@

                                        // shrink data file to current size
                                        if (storeSize < _prevStoreSize)
-                                               
setStoreFileSize(Math.max(storeSize, entriesLeft));
+                                               
setStoreFileSize(Math.max(storeSize, entriesLeft), false);

                                        // try to resolve the list
                                        ListIterator<Entry> it = 
oldEntryList.listIterator();


Reply via email to