X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=unused%2Fsrcjar_unused%2Forg%2Fapache%2Flog4j%2FDispatcher.java;fp=unused%2Fsrcjar_unused%2Forg%2Fapache%2Flog4j%2FDispatcher.java;h=0000000000000000000000000000000000000000;hb=4f77328104498504339216829abf5ea87e2791ec;hp=e879ff0abf2fa2f99c37d936d48794353d30b68b;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/unused/srcjar_unused/org/apache/log4j/Dispatcher.java b/unused/srcjar_unused/org/apache/log4j/Dispatcher.java deleted file mode 100644 index e879ff0..0000000 --- a/unused/srcjar_unused/org/apache/log4j/Dispatcher.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.log4j; - -import org.apache.log4j.helpers.AppenderAttachableImpl; -import org.apache.log4j.spi.LoggingEvent; - - -/** - * Obsolete AsyncAppender dispatcher provided for compatibility only. - * - * @deprecated Since 1.3. - */ -class Dispatcher extends Thread { - /** - * @deprecated - */ - private org.apache.log4j.helpers.BoundedFIFO bf; - private AppenderAttachableImpl aai; - private boolean interrupted = false; - AsyncAppender container; - - /** - * - * @param bf - * @param container - * @deprecated - */ - Dispatcher(org.apache.log4j.helpers.BoundedFIFO bf, AsyncAppender container) { - this.bf = bf; - this.container = container; - this.aai = container.aai; - - // It is the user's responsibility to close appenders before - // exiting. - this.setDaemon(true); - - // set the dispatcher priority to lowest possible value - this.setPriority(Thread.MIN_PRIORITY); - this.setName("Dispatcher-" + getName()); - - // set the dispatcher priority to MIN_PRIORITY plus or minus 2 - // depending on the direction of MIN to MAX_PRIORITY. - //+ (Thread.MAX_PRIORITY > Thread.MIN_PRIORITY ? 1 : -1)*2); - } - - void close() { - synchronized (bf) { - interrupted = true; - - // We have a waiting dispacther if and only if bf.length is - // zero. In that case, we need to give it a death kiss. - if (bf.length() == 0) { - bf.notify(); - } - } - } - - /** - * The dispatching strategy is to wait until there are events in the buffer - * to process. After having processed an event, we release the monitor - * (variable bf) so that new events can be placed in the buffer, instead of - * keeping the monitor and processing the remaining events in the buffer. - * - *

- * Other approaches might yield better results. - *

- */ - public void run() { - //Category cat = Category.getInstance(Dispatcher.class.getName()); - LoggingEvent event; - - while (true) { - synchronized (bf) { - if (bf.length() == 0) { - // Exit loop if interrupted but only if the the buffer is empty. - if (interrupted) { - //cat.info("Exiting."); - break; - } - - try { - //LogLog.debug("Waiting for new event to dispatch."); - bf.wait(); - } catch (InterruptedException e) { - break; - } - } - - event = bf.get(); - - if (bf.wasFull()) { - //LogLog.debug("Notifying AsyncAppender about freed space."); - bf.notify(); - } - } - - // synchronized - synchronized (container.aai) { - if ((aai != null) && (event != null)) { - aai.appendLoopOnAppenders(event); - } - } - } - - // while - // close and remove all appenders - aai.removeAllAppenders(); - } -}