You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2011/06/29 21:51:16 UTC

svn commit: r1141222 - /activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala

Author: chirino
Date: Wed Jun 29 19:51:16 2011
New Revision: 1141222

URL: http://svn.apache.org/viewvc?rev=1141222&view=rev
Log:
Fixes https://issues.apache.org/jira/browse/APLO-57 : Track desired service state so you can stop a service which is starting (calls stop once started)

Modified:
    activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala

Modified: activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala?rev=1141222&r1=1141221&r2=1141222&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-util/src/main/scala/org/apache/activemq/apollo/util/BaseService.scala Wed Jun 29 19:51:16 2011
@@ -18,6 +18,7 @@ package org.apache.activemq.apollo.util
 
 import org.fusesource.hawtdispatch.DispatchQueue
 import org.fusesource.hawtdispatch._
+import collection.mutable.ListBuffer
 
 object BaseService extends Log
 
@@ -73,10 +74,10 @@ trait BaseService extends Service with D
   protected var _serviceFailure:Exception = null
   def serviceFailure = _serviceFailure
 
-  private var pending_actions = List[Runnable]()
+  private val pending_actions = ListBuffer[Runnable]()
 
   final def start(on_completed:Runnable) = {
-    val start_task = ^{
+    def start_task:Runnable = ^{
       def do_start = {
         val state = new STARTING()
         state << on_completed
@@ -97,7 +98,7 @@ trait BaseService extends Service with D
       }
       def done = {
         pending_actions.foreach(dispatch_queue.execute _)
-        pending_actions = Nil
+        pending_actions.clear()
         if( on_completed!=null ) {
           on_completed.run
         }
@@ -118,14 +119,14 @@ trait BaseService extends Service with D
           error("Start should not be called from state: %s", state);
       }
     }
-    start_task |>>: dispatch_queue
+    start_task >>: dispatch_queue
   }
 
   final def stop(on_completed:Runnable) = {
-    val stop_task = ^{
+    def stop_task:Runnable = ^{
       def done = {
         pending_actions.foreach(dispatch_queue.execute _)
-        pending_actions = Nil
+        pending_actions.clear
         if( on_completed!=null ) {
           on_completed.run
         }
@@ -159,7 +160,7 @@ trait BaseService extends Service with D
           error("Stop should not be called from state: %s", state);
       }
     }
-    stop_task |>>: dispatch_queue
+    stop_task >>: dispatch_queue
   }
 
   protected def _start(on_completed:Runnable)