Commit graph

7592 commits

Author SHA1 Message Date
Roland
25e8eb1422 teach new tricks to old FaultHandlingStrategy
- Escalate explicitly does the previous non-handled case
- Restart does the obvious
- Stop just terminates the child (useful for
  ActorInitializationException or “temporary” actors)
- Resume directly resumes the child (immortal actors)
- trapExit list replaced by Decider (total function cause=>action)
- there are factories which accept (most of) the old inputs
- can build a sorted list of (cause, action)-pairs to make a Decider
  which picks the action for the most specific enclosing cause type

Also add DeathPactException for case of unhandled Terminated message.
2011-10-19 11:36:34 +02:00
Roland
10c87d5832 split out fault handling stuff from ActorCell.scala to
FaultHandling.scala
2011-10-19 11:36:06 +02:00
Roland
5c823ad50d replace ConcurrentLinkedQueue with single-linked list for Mailbox.systemQueue
cost zero when empty, non-blocking, shave off 84 bytes per actor
2011-10-18 21:21:19 +02:00
Viktor Klang
01efcd7b50 Removing ActorCell.ref (use ActorCell.self instead), introducing Props.randomAddress which will use the toString of the uuid of the actor ref as address, bypassing deployer for actors with 'randomAddress' since it isn't possible to know what the address will be anyway, removing Address.validate since it serves no useful purpose, removing guard.withGuard in MessageDispatcher in favor of the less costly lock try-finally unlock strategy 2011-10-18 19:14:42 +02:00
Viktor Klang
474787a81d Renaming createActor to actorOf 2011-10-18 17:56:23 +02:00
Viktor Klang
3f258f8b63 Merge branch 'master' of github.com:jboner/akka 2011-10-18 17:00:11 +02:00
Viktor Klang
6150beb333 Pushing the memory per actor down to 464 bytes. Returning None for the Deploy if there is no config 2011-10-18 16:59:57 +02:00
Roland
df29faca2d merge in Viktor’s dispatcher uuid map removal 2011-10-18 16:47:07 +02:00
Roland
183dfb4d7f remove SystemEnvelope
- channel field was always set to NullChannel and not used
- receiver field is better put into the Mailbox, because there it takes
  space only once per actor
- leaves only the bare SystemMessage to be queued
2011-10-18 16:44:35 +02:00
Viktor Klang
304d39d839 Removing uuid tracking in MessageDispatcher, isn't needed and will be reducing the overall memory footprint per actor 2011-10-18 15:09:35 +02:00
Viktor Klang
65868d7c96 Making sure that the RemoteActorRefProvider delegates systemServices down to the LocalActorRefProvider 2011-10-18 14:21:48 +02:00
Viktor Klang
1c3b9a389b Adding clarification to DeathWatchSpec as well as making sure that systemServices aren't passed into the deployer 2011-10-18 14:00:46 +02:00
Viktor Klang
7a6508973f Adding extra output to give more hope in reproducing weird test failure that only happens in Jenkins 2011-10-18 12:40:44 +02:00
Viktor Klang
cb8a0adbb8 Switching to a cached version of Stack.empty, saving 16 bytes per Actor. Switching to purging the Promises in the ActorRefProvider after successful creation to conserve memory. Stopping to clone the props everytime to set the application default dispatcher, and doing a conditional in ActorCell instead. 2011-10-18 11:26:35 +02:00
Viktor Klang
4e960e5364 Changing so that the mailbox status is ack:ed after the _whole_ processing of the current batch, which means that Akka only does 1 volatile write per batch (of course the backing mailboxes might do their own volatile writes) 2011-10-17 19:33:19 +02:00
Viktor Klang
fa1a2610a7 Removing RemoteActorSystemMessage.Stop in favor of the sexier Terminate message 2011-10-17 19:31:59 +02:00
Viktor Klang
379515771b Tidying up some superflous lines of code in Scheduler 2011-10-17 19:31:04 +02:00
Viktor Klang
bd39ab0816 Merge branch 'master' of github.com:jboner/akka 2011-10-17 18:35:48 +02:00
Viktor Klang
050411bf3b Making a Java API for Scheduler (JScheduler) and an abstract class Scheduler that extends it, to make the Scheduler pluggable, moving it into AkkaApplication and migrating the code. 2011-10-17 18:35:36 +02:00
Roland
f75d16f710 fix small naming errors in supervision.rst 2011-10-17 17:59:04 +02:00
Roland
ab4f62cebe add first draft of supervision spec 2011-10-17 16:17:28 +02:00
Viktor Klang
2270395d3f Adding try-finally in the system message processing to ensure that the cleanup is performed accurately 2011-10-17 14:53:32 +02:00
Viktor Klang
3dc84a0229 Renaming InVMMonitoring to LocalDeathWatch and moved it into AkkaApplication, also created a createDeathWatch method in ActorRefProvider so that it's seeded from there, and then removed @volatile from alot of vars in ActorCell since the fields are now protected by the Mailbox status field 2011-10-17 14:32:31 +02:00
Viktor Klang
3a543ed23d Relized that setAsIdle doesn't need to call acknowledgeStatus since it's already called within the systemInvoke and invoke 2011-10-15 16:52:28 +02:00
Jonas Bonér
36cd652581 Removing Gossiper. Was added prematurely by mistake.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-14 15:23:35 +02:00
Jonas Bonér
44e460bff3 Merge branch 'master' of github.com:jboner/akka 2011-10-14 15:11:43 +02:00
Jonas Bonér
88edec35ef Vector clock implementation, including tests. To be used in Gossip protocol.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-14 15:11:31 +02:00
Viktor Klang
5788ed4281 Renaming link/unlink to startsMonitoring/stopsMonitoring 2011-10-14 15:09:46 +02:00
Viktor Klang
07a7b27386 Cleaning up a section of the ActorPool 2011-10-14 14:28:55 +02:00
Peter Vlugter
d4619b0863 Merge master into tame-globals branch 2011-10-13 18:15:09 +02:00
Peter Vlugter
d9e0088f3c Get remoting working under the remote actor ref provider 2011-10-13 18:08:09 +02:00
Roland
e94860b57b fix remaining issues apart from multi-jvm
- use proper config method in FSMActorSpec
- re-enable LoggingReceiveSpec and fix it
- fix ordering bug in AkkaApplication
- fix stupid bug in Switch.transcend
2011-10-13 16:53:16 +02:00
Viktor Klang
c5ed2a8f21 Making so that if the given address to a LocalActorRef is null or the empty string, it should use the toString of the uuid 2011-10-13 16:36:47 +02:00
Roland
9e8091459b rename application to app everywhere to make it consistent 2011-10-13 14:23:44 +02:00
Viktor Klang
54b70b1017 Removing pointless AtomicReference since register/unregister is already lock protected 2011-10-13 14:18:16 +02:00
Roland
44b94643e5 Merge with Peter's work (i.e. merging master into tame-globals) 2011-10-13 14:17:07 +02:00
Roland
3709a8f828 fix akka-docs compilation, remove duplicate applications from STM tests 2011-10-13 13:53:09 +02:00
Peter Vlugter
317b8bc03b Merge master into tame-globals branch 2011-10-13 13:41:44 +02:00
Roland
85b7accfd4 make EventHandler non-global
- add Logging trait for nicer interface
- add EventHandlerLogging class for offering the nice interface from
  app.log
- add eventHandler instance to app and use that for all internal logging
  (this means that some places (dispatchers, remoting) were infiltrated
  by app just to do logging, but I think we'll need app in there soon
  enough for other reasons)
2011-10-13 13:21:59 +02:00
Jonas Bonér
faa5b08dde Merge branch 'master' of github.com:jboner/akka 2011-10-13 12:09:02 +02:00
Jonas Bonér
19cc618317 Simplified (and improved speed) of PHI calculation in AccrualFailureDetector, according to discussion at https://issues.apache.org/jira/browse/CASSANDRA-2597 .
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-13 12:06:08 +02:00
Patrik Nordwall
963ea0d9b2 Added sampling of latency measurement 2011-10-12 21:26:25 +02:00
Patrik Nordwall
045b9d96c6 Added .cached to .gitignore 2011-10-12 20:39:59 +02:00
Viktor Klang
3567d554fb Adding documentation for the ExecutorService and ThreadPoolConfig DSLs 2011-10-12 18:21:12 +02:00
Viktor Klang
c950679fd8 #1285 - Implementing different internal states for the DefaultPromise 2011-10-12 16:29:33 +02:00
Peter Vlugter
e25ee9f0e2 Fix remote main compile and testkit tests 2011-10-12 15:36:10 +02:00
Roland
e2f9528bc0 fix compilation of akka-docs 2011-10-12 15:25:04 +02:00
Peter Vlugter
fa94198656 Fix remaining tests in akka-actor-tests 2011-10-12 15:15:17 +02:00
Roland
f7c1123dab pre-fix but disable LoggingReceiveSpec: depends on future EventHandler rework 2011-10-12 15:08:06 +02:00
Roland
e5d24b0f17 remove superfluous AkkaApplication.akkaConfig() method (can use AkkaConfig() instead) 2011-10-12 15:07:39 +02:00