On Thursday 29 January 2009 17:12:57 [email protected] wrote: > Author: nextgens > Date: 2009-01-29 17:12:57 +0000 (Thu, 29 Jan 2009) > New Revision: 25364 > > Modified: > trunk/freenet/src/freenet/node/FNPPacketMangler.java > trunk/freenet/src/freenet/node/PacketSender.java > trunk/freenet/src/freenet/node/PeerNode.java > trunk/freenet/src/freenet/node/RequestSender.java > trunk/freenet/src/freenet/support/Logger.java > trunk/freenet/src/freenet/support/LoggerHook.java > Log: > some untested code trying to address the lock-contention problem in the logger
How expensive are the volatile's?
>
> Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2009-01-29
> 16:36:30
UTC (rev 25363)
> +++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2009-01-29
> 17:12:57
UTC (rev 25364)
> @@ -47,6 +47,7 @@
> import freenet.support.HTMLNode;
> import freenet.support.HexUtil;
> import freenet.support.Logger;
> +import freenet.support.LogThresholdCallback;
> import freenet.support.SimpleFieldSet;
> import freenet.support.TimeUtil;
> import freenet.support.WouldBlockException;
> @@ -62,8 +63,18 @@
> * changes in IncomingPacketFilter).
> */
> public class FNPPacketMangler implements OutgoingPacketMangler,
IncomingPacketFilter {
> - private static boolean logMINOR;
> - private static boolean logDEBUG;
> + private static volatile boolean logMINOR;
> + private static volatile boolean logDEBUG;
> +
> + static {
> + Logger.registerLogThresholdCallback(new LogThresholdCallback(){
> + public void shouldUpdate(){
> + logMINOR = Logger.shouldLog(Logger.MINOR, this);
> + logDEBUG = Logger.shouldLog(Logger.DEBUG, this);
> + }
> + });
> + }
> +
> private final Node node;
> private final NodeCrypto crypto;
> private final MessageCore usm;
> @@ -168,8 +179,6 @@
>
> fullHeadersLengthMinimum = HEADERS_LENGTH_MINIMUM +
sock.getHeadersLength();
> fullHeadersLengthOneMessage = HEADERS_LENGTH_ONE_MESSAGE +
sock.getHeadersLength();
> - logMINOR = Logger.shouldLog(Logger.MINOR, this);
> - logDEBUG = Logger.shouldLog(Logger.DEBUG, this);
> }
>
> /**
> @@ -208,8 +217,6 @@
> */
> public void process(byte[] buf, int offset, int length, Peer peer, long
now) {
> node.random.acceptTimerEntropy(fnpTimingSource, 0.25);
> - logMINOR = Logger.shouldLog(Logger.MINOR, this);
> - logDEBUG = Logger.shouldLog(Logger.DEBUG, this);
> if(logMINOR) Logger.minor(this, "Packet length "+length+" from
> "+peer);
>
> /**
> @@ -1806,7 +1813,7 @@
> private boolean tryProcess(byte[] buf, int offset, int length,
> SessionKey
tracker, long now) {
> // Need to be able to call with tracker == null to simplify
> code above
> if(tracker == null) {
> - if(Logger.shouldLog(Logger.DEBUG, this))
> Logger.debug(this, "Tracker ==
null");
> + if(logDEBUG) Logger.debug(this, "Tracker == null");
> return false;
> }
> if(logMINOR) Logger.minor(this,"Entering
tryProcess: "+Fields.hashCode(buf)+ ',' +offset+ ',' +length+ ',' +tracker);
>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
