[jboss-cvs] jboss-jms/src/main/org/jboss/messaging/core/refqueue ...
Timothy Fox
tim.fox at jboss.com
Mon Jul 17 13:14:49 EDT 2006
User: timfox
Date: 06/07/17 13:14:49
Modified: src/main/org/jboss/messaging/core/refqueue
BasicPrioritizedDeque.java PrioritizedDeque.java
Log:
Many changes including implementation of prefetch, SEDAisation of server, changing of recovery
Revision Changes Path
1.8 +16 -29 jboss-jms/src/main/org/jboss/messaging/core/refqueue/BasicPrioritizedDeque.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BasicPrioritizedDeque.java
===================================================================
RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/messaging/core/refqueue/BasicPrioritizedDeque.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- BasicPrioritizedDeque.java 5 Mar 2006 16:17:24 -0000 1.7
+++ BasicPrioritizedDeque.java 17 Jul 2006 17:14:49 -0000 1.8
@@ -25,6 +25,9 @@
import java.util.LinkedList;
import java.util.List;
+import org.jboss.logging.Logger;
+import org.jboss.messaging.core.ChannelSupport;
+
/**
* A basic non synchronized PrioritizedDeque implementation.
*
@@ -32,12 +35,15 @@
* individual LinkedList for each priority level.
*
* @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
- * @version <tt>$Revision: 1.7 $</tt>
+ * @version <tt>$Revision: 1.8 $</tt>
*
- * $Id: BasicPrioritizedDeque.java,v 1.7 2006/03/05 16:17:24 timfox Exp $
+ * $Id: BasicPrioritizedDeque.java,v 1.8 2006/07/17 17:14:49 timfox Exp $
*/
public class BasicPrioritizedDeque implements PrioritizedDeque
{
+ private static final Logger log = Logger.getLogger(BasicPrioritizedDeque.class);
+
+
protected LinkedList[] linkedLists;
protected int priorities;
@@ -51,28 +57,25 @@
initDeques();
}
- public boolean addFirst(Object obj, int priority)
+ public void addFirst(Object obj, int priority)
{
linkedLists[priority].addFirst(obj);
size++;
-
- return size == 1;
}
- public boolean addLast(Object obj, int priority)
+ public void addLast(Object obj, int priority)
{
linkedLists[priority].addLast(obj);
size++;
-
- return size == 1;
}
public Object removeFirst()
{
Object obj = null;
+
//Initially we are just using a simple prioritization algorithm:
//Highest priority refs always get returned first.
//This could cause starvation of lower priority refs.
@@ -83,28 +86,12 @@
{
LinkedList ll = linkedLists[i];
- //TODO improve this further
- int listSize = ll.size();
- if (listSize == 1 || listSize == 2)
- {
- if (!ll.isEmpty())
- {
- obj = linkedLists[i].removeFirst();
- }
- }
- else
- {
- //No need to synchronize
if (!ll.isEmpty())
{
- obj = linkedLists[i].removeFirst();
- }
- }
-
- if (obj != null)
- {
+ obj = ll.removeFirst();
break;
}
+
}
if (obj != null)
1.8 +4 -4 jboss-jms/src/main/org/jboss/messaging/core/refqueue/PrioritizedDeque.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PrioritizedDeque.java
===================================================================
RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/messaging/core/refqueue/PrioritizedDeque.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- PrioritizedDeque.java 5 Mar 2006 16:17:24 -0000 1.7
+++ PrioritizedDeque.java 17 Jul 2006 17:14:49 -0000 1.8
@@ -28,15 +28,15 @@
* A deque that returns objects according to a priority.<br>
*
* @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
- * @version <tt>$Revision: 1.7 $</tt>
+ * @version <tt>$Revision: 1.8 $</tt>
*
- * $Id: PrioritizedDeque.java,v 1.7 2006/03/05 16:17:24 timfox Exp $
+ * $Id: PrioritizedDeque.java,v 1.8 2006/07/17 17:14:49 timfox Exp $
*/
public interface PrioritizedDeque
{
- boolean addFirst(Object obj, int priority);
+ void addFirst(Object obj, int priority);
- boolean addLast(Object obj, int priority);
+ void addLast(Object obj, int priority);
Object removeFirst();
More information about the jboss-cvs-commits
mailing list