added the ability to kill another actor
This commit is contained in:
parent
317c5c9c53
commit
927936da68
3 changed files with 58 additions and 66 deletions
|
|
@ -19,17 +19,19 @@ import se.scalablesolutions.akka.serialization.Serializer
|
|||
import se.scalablesolutions.akka.util.Helpers.ReadWriteLock
|
||||
import se.scalablesolutions.akka.util.Logging
|
||||
|
||||
import org.codehaus.aspectwerkz.joinpoint.{MethodRtti, JoinPoint}
|
||||
import org.codehaus.aspectwerkz.proxy.Uuid
|
||||
|
||||
import org.multiverse.utils.ThreadLocalTransaction._
|
||||
|
||||
sealed abstract class LifecycleMessage
|
||||
@serializable sealed abstract class LifecycleMessage
|
||||
case class Init(config: AnyRef) extends LifecycleMessage
|
||||
//case object TransactionalInit extends LifecycleMessage
|
||||
case class HotSwap(code: Option[PartialFunction[Any, Unit]]) extends LifecycleMessage
|
||||
case class Restart(reason: AnyRef) extends LifecycleMessage
|
||||
case class Exit(dead: Actor, killer: Throwable) extends LifecycleMessage
|
||||
case class Kill(killer: Actor) extends LifecycleMessage
|
||||
//case object TransactionalInit extends LifecycleMessage
|
||||
|
||||
class ActorKilledException(val killed: Actor, val killer: Actor) extends RuntimeException("Actor [" + killed + "] killed by [" + killer + "]")
|
||||
|
||||
sealed abstract class DispatcherType
|
||||
object DispatcherType {
|
||||
|
|
@ -610,6 +612,7 @@ trait Actor extends Logging with TransactionManagement {
|
|||
case HotSwap(code) => _hotswap = code
|
||||
case Restart(reason) => restart(reason)
|
||||
case Exit(dead, reason) => handleTrapExit(dead, reason)
|
||||
case Kill(killer) => throw new ActorKilledException(this, killer)
|
||||
// case TransactionalInit => initTransactionalState
|
||||
}
|
||||
|
||||
|
|
@ -698,5 +701,5 @@ trait Actor extends Logging with TransactionManagement {
|
|||
} else message
|
||||
} else message
|
||||
|
||||
override def toString(): String = "Actor[" + uuid + ":" + id + "]"
|
||||
override def toString(): String = "Actor[" + id+ ":" + uuid + "]"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import scala.collection.mutable.HashMap
|
|||
*
|
||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
object ActorRegistry extends Logging {
|
||||
object ActorRegistry {
|
||||
private val actorsByClassName = new HashMap[String, List[Actor]]
|
||||
private val actorsById = new HashMap[String, List[Actor]]
|
||||
|
||||
|
|
|
|||
111
akka.iws
111
akka.iws
|
|
@ -7,8 +7,6 @@
|
|||
<list default="true" readonly="true" id="188c966f-a83c-4d3a-9128-54d5a2947a12" name="Default" comment="">
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" afterPath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala" afterPath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.ipr" afterPath="$PROJECT_DIR$/akka.ipr" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/storage-conf.xml" afterPath="$PROJECT_DIR$/config/storage-conf.xml" />
|
||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
||||
</list>
|
||||
<ignored path="akka.iws" />
|
||||
|
|
@ -106,10 +104,10 @@
|
|||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Actor.scala" pinned="false" current="false" current-in-tab="false">
|
||||
<file leaf-file-name="Actor.scala" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="577" column="25" selection-start="21791" selection-end="21791" vertical-scroll-proportion="0.0">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.07692308">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
|
@ -133,15 +131,6 @@
|
|||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ActorRegistry.scala" pinned="false" current="true" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="52" selection-start="461" selection-end="461" vertical-scroll-proportion="0.1957672">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FindManager">
|
||||
|
|
@ -228,32 +217,6 @@
|
|||
<sortByType />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope">
|
||||
<subPane subId="Problems">
|
||||
<PATH>
|
||||
<PATH_ELEMENT USER_OBJECT="Root">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="src/test/java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="se/scalablesolutions/akka/api">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<PATH>
|
||||
|
|
@ -664,26 +627,52 @@
|
|||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope">
|
||||
<subPane subId="Problems">
|
||||
<PATH>
|
||||
<PATH_ELEMENT USER_OBJECT="Root">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="src/test/java">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT USER_OBJECT="se/scalablesolutions/akka/api">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Favorites" />
|
||||
<pane id="PackagesPane">
|
||||
<subPane />
|
||||
</pane>
|
||||
<pane id="Favorites" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="GoToClass.includeJavaFiles" value="false" />
|
||||
<property name="project.structure.proportion" value="0.15" />
|
||||
<property name="GoToClass.includeJavaFiles" value="false" />
|
||||
<property name="MemberChooser.copyJavadoc" value="false" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
|
||||
<property name="options.splitter.main.proportions" value="0.3" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
|
||||
<property name="options.splitter.main.proportions" value="0.3" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="924" />
|
||||
<property name="GoToFile.includeJavaFiles" value="false" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="113" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="130" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="133" />
|
||||
<property name="GoToClass.includeLibraries" value="false" />
|
||||
<property name="options.splitter.details.proportions" value="0.2" />
|
||||
<property name="GoToClass.includeLibraries" value="false" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="133" />
|
||||
<property name="MemberChooser.showClasses" value="true" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
|
||||
|
|
@ -695,13 +684,13 @@
|
|||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
|
||||
<property name="RunManagerConfig.showSettingsBeforeRunnig" value="false" />
|
||||
<property name="project.structure.last.edited" value="Modules" />
|
||||
<property name="MemberChooser.sorted" value="false" />
|
||||
<property name="options.searchVisible" value="true" />
|
||||
<property name="MemberChooser.sorted" value="false" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
|
||||
<property name="recentsLimit" value="5" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="162" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="928" />
|
||||
<property name="dynamic.classpath" value="false" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="928" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="166" />
|
||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
|
||||
</component>
|
||||
|
|
@ -857,14 +846,6 @@
|
|||
<option name="Maven.BeforeRunTask" enabled="false" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" air_descriptor_path="" air_program_params="" air_publisher_id="" air_root_dir_path="" class_name="" html_or_swf_file_path="" main_class_name="" method_name="" module_name="" output_log_level="" package_name="" port="0" run_mode="HtmlOrSwfFile" scope="Class" socket_policy_port="0" url_to_launch="http://">
|
||||
<method>
|
||||
<option name="AntTarget" enabled="false" />
|
||||
<option name="BuildArtifacts" enabled="false" />
|
||||
<option name="Make" enabled="true" />
|
||||
<option name="Maven.BeforeRunTask" enabled="false" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false" runner="emma">
|
||||
<module name="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
|
|
@ -896,6 +877,14 @@
|
|||
<option name="Maven.BeforeRunTask" enabled="false" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" air_descriptor_path="" air_program_params="" air_publisher_id="" air_root_dir_path="" class_name="" html_or_swf_file_path="" main_class_name="" method_name="" module_name="" output_log_level="" package_name="" port="0" run_mode="HtmlOrSwfFile" scope="Class" socket_policy_port="0" url_to_launch="http://">
|
||||
<method>
|
||||
<option name="AntTarget" enabled="false" />
|
||||
<option name="BuildArtifacts" enabled="false" />
|
||||
<option name="Make" enabled="true" />
|
||||
<option name="Maven.BeforeRunTask" enabled="false" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false" runner="emma">
|
||||
<module name="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
|
|
@ -1165,6 +1154,7 @@
|
|||
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.17893218" sideWeight="0.7020295" order="0" side_tool="false" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2915129" sideWeight="0.5" order="1" side_tool="false" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" />
|
||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" />
|
||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" />
|
||||
|
|
@ -1177,7 +1167,6 @@
|
|||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="11" side_tool="false" />
|
||||
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2915129" sideWeight="0.5" order="1" side_tool="false" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32564574" sideWeight="0.5" order="12" side_tool="false" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" />
|
||||
|
|
@ -1278,9 +1267,9 @@
|
|||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/Transaction.scala">
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="167" column="0" selection-start="6138" selection-end="6138" vertical-scroll-proportion="0.0">
|
||||
<state line="15" column="20" selection-start="390" selection-end="390" vertical-scroll-proportion="0.32671958">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
|
@ -1292,16 +1281,16 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/Transaction.scala">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="577" column="25" selection-start="21791" selection-end="21791" vertical-scroll-proportion="0.0">
|
||||
<state line="167" column="0" selection-start="6138" selection-end="6138" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala">
|
||||
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="16" column="52" selection-start="461" selection-end="461" vertical-scroll-proportion="0.1957672">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.07692308">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue