You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/06/07 23:51:38 UTC

svn commit: r412571 - in /tomcat/container/tc5.5.x/modules/groupcom: doc/ src/share/org/apache/catalina/tribes/group/interceptors/ src/share/org/apache/catalina/tribes/membership/

Author: fhanik
Date: Wed Jun  7 14:51:38 2006
New Revision: 412571

URL: http://svn.apache.org/viewvc?rev=412571&view=rev
Log:
more changes, ready to start implementing

Modified:
    tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.dia
    tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.jpg
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/Membership.java

Modified: tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.dia
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.dia?rev=412571&r1=412570&r2=412571&view=diff
==============================================================================
Binary files - no diff available.

Modified: tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.jpg
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/doc/leader-election-initiate-election.jpg?rev=412571&r1=412570&r2=412571&view=diff
==============================================================================
Binary files - no diff available.

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java?rev=412571&r1=412570&r2=412571&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java Wed Jun  7 14:51:38 2006
@@ -173,7 +173,6 @@
     protected Object electionMutex = new Object();
     
     protected AtomicBoolean coordMsgReceived = new AtomicBoolean(false);
-    protected AtomicInteger runningElections = new AtomicInteger(0);
     
     public NonBlockingCoordinator() {
         super();
@@ -192,7 +191,6 @@
             int prio = AbsoluteOrder.comp.compare(local,others[0]);
             MemberImpl leader = ( prio < 0 )?local:others[0];//am I the leader in my view?
             if ( local.equals(leader) || force ) {
-                runningElections.addAndGet(1);
                 sendElectionMsg(local,leader,others);
             } else {
                 try {
@@ -201,7 +199,7 @@
                 }catch ( InterruptedException x ) {
                     Thread.currentThread().interrupted();
                 }
-                if ( runningElections.get() == 0 && suggestedviewId == null && (!coordMsgReceived.get())) {
+                if ( suggestedviewId == null && (!coordMsgReceived.get())) {
                     //no message arrived, send the coord msg
                     startElection(true);
                 }
@@ -220,7 +218,8 @@
             suggestedviewId = msg.getId();
             suggestedView = new Membership(local);
             Arrays.fill(suggestedView,mbrs);
-            
+            m.reset(); 
+            m = null;
             super.sendMessage(new Member[] {others[0]}, createData(msg, local), null);
         }
     }
@@ -251,6 +250,7 @@
     protected Membership mergeOnArrive(CoordinationMessage msg, Member sender) {
         MemberImpl local = (MemberImpl)getLocalMember(false);
         Membership merged = new Membership(local,AbsoluteOrder.comp);
+        merged.addMember(local);
         Arrays.fill(merged,msg.getMembers());
         Arrays.fill(merged,getMembers());
         Member[] diff = Arrays.diff(merged,membership,local);
@@ -284,7 +284,6 @@
         if ( viewId.equals(this.suggestedviewId) ) {
             this.suggestedView = null;
             this.suggestedviewId = null;
-            this.runningElections.addAndGet(-1);
         }
         this.viewChange(viewId,view.getMembers());
         if ( suggestedviewId == null && hasHigherPriority(merged.getMembers(),membership.getMembers()) ) {

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/Membership.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/Membership.java?rev=412571&r1=412570&r2=412571&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/Membership.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/Membership.java Wed Jun  7 14:51:38 2006
@@ -221,6 +221,10 @@
             return null;
         }
     }
+    
+    public boolean contains(Member mbr) { 
+        return getMember(mbr)!=null;
+    }
  
     /**
      * Returning a list of all the members in the membership



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org