On Sun, May 4, 2008 at 3:04 AM, Matthew Toseland
<toad at amphibian.dyndns.org> wrote:
>
>
> > int sleeptime = aggressiveGCModificator;
> > if(sleeptime <= 0) { // We are done
> > ps.queueTimedJob(this, 120 * 250); // 30 sec
> >
> > Modified: trunk/freenet/src/freenet/node/Node.java
> > ===================================================================
> > --- trunk/freenet/src/freenet/node/Node.java 2008-05-02 10:09:13 UTC (rev
> 19674)
> > +++ trunk/freenet/src/freenet/node/Node.java 2008-05-02 10:10:12 UTC (rev
> 19675)
> > @@ -124,7 +124,7 @@
> > /**
> > * @author amphibian
> > */
> > -public class Node implements TimeSkewDetectorCallback, GetPubkey, OOMHook
> {
> > +public class Node implements TimeSkewDetectorCallback, GetPubkey {
> >
> > private static boolean logMINOR;
> >
> > @@ -1604,8 +1604,6 @@
> > e.printStackTrace();
> > throw new
> NodeInitException(NodeInitException.EXIT_COULD_NOT_START_UPDATER, "Could not
> create Updater: "+e);
> > }
> > -
> > - OOMHandler.addOOMHook(this);
> >
> > Logger.normal(this, "Node constructor completed");
> > System.out.println("Node constructor completed");
> > @@ -3306,23 +3304,4 @@
> > public void setDispatcherHook(NodeDispatcherCallback cb) {
> > this.dispatcher.setHook(cb);
> > }
> > -
> > - /**
> > - * Free some memory
> > - */
> > - public void handleOOM() throws Exception {
> > - if (cachedPubKeys != null) {
> > - Object value;
> > - do {
> > - value = cachedPubKeys.popKey();
> > - } while (value != null);
> > - }
> > - if (recentlyCompletedIDs != null) {
> > - synchronized (recentlyCompletedIDs) {
> > - // half it size
> > - while (recentlyCompletedIDs.size() >
> MAX_RECENTLY_COMPLETED_IDS / 2)
> > - recentlyCompletedIDs.pop();
> > - }
> > - }
> > - }
> > }
>
> Why did you delete the pubkey cache clearing OOM hook?
>
>
I deleted that because I introduced that but I am not sure if this
clearing is safe.
IMO, the current OOMHook free too few memory. I wanted to introduce
some more hooks, but have no idea where it is safe to be done. If you
have any suggestions, please tell.