From aa8ecad39224dcfa5e44fe20d2f318ab05644cf3 Mon Sep 17 00:00:00 2001 From: pero Date: Thu, 26 Apr 2007 21:41:47 +0000 Subject: [PATCH] Remove senders as member disappeared.. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@532877 13f79535-47bb-0310-9956-ffa450edef68 --- .../catalina/tribes/transport/PooledSender.java | 31 +++++++++++++++++----- .../tribes/transport/bio/PooledMultiSender.java | 9 ------- .../tribes/transport/nio/PooledParallelSender.java | 9 +------ 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java b/java/org/apache/catalina/tribes/transport/PooledSender.java index a344c14b3..fa2dcb209 100644 --- a/java/org/apache/catalina/tribes/transport/PooledSender.java +++ b/java/org/apache/catalina/tribes/transport/PooledSender.java @@ -19,6 +19,8 @@ package org.apache.catalina.tribes.transport; import java.io.IOException; import java.util.List; +import org.apache.catalina.tribes.Member; + /** *

Title:

* @@ -83,7 +85,13 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS return (queue==null)?false:queue.checkIdleKeepAlive(); } + public void add(Member member) { + // we don't need it senders are pooled... + } + public void remove(Member member) { + queue.remove(member) ; + } // ----------------------------------------------------- Inner Class @@ -92,17 +100,17 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS PooledSender parent = null; - private List notinuse = null; + private List notinuse = null; - private List inuse = null; + private List inuse = null; private boolean isOpen = true; public SenderQueue(PooledSender parent, int limit) { this.limit = limit; this.parent = parent; - notinuse = new java.util.LinkedList(); - inuse = new java.util.LinkedList(); + notinuse = new java.util.LinkedList(); + inuse = new java.util.LinkedList(); } /** @@ -141,6 +149,18 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS return result; } + // FIXME: remove also inuse senders. but then we must synch with sendMessage! + public synchronized void remove(Member member) { + if (isOpen) { + DataSender[] list = new DataSender[notinuse.size()]; + notinuse.toArray(list); + for (int i=0; i