Commit graph

160 commits

Author SHA1 Message Date
Viktor Klang
db5a32fa04 =act - Reinstates the Mailbox optimization reusing the FJT instance but doesn't use FJT.fork() due to unfairness 2015-05-11 21:11:51 +02:00
Endre Sándor Varga
3d5cb2454f =act #17341: Revert starvation prone optimization 4e0bd6d
- also adding test to reproduce the problem
(cherry picked from commit 9e115f2)
2015-05-07 16:07:57 +02:00
Julian Tescher
00f6a58e7c Changes all occurances of Typesafe copyright to extend to 2015 2015-03-10 14:12:19 -07:00
dch
8df81e6b72 Introduce stable priority mailboxes.
Similar to existing priority mailboxes, but these preserve FIFO ordering
for messages of equal priority.
2015-01-28 11:20:59 +00:00
Viktor Klang
439be7d99a =act #16152 - Elides the need to allocate an AkkaForkJoinTask for Mailbox-submission to registerForExecution,
by having Mailbox extend ForkJoinTask and using the fact that ForkJoinTask.exec when returning
false does not set completion on the task, so it is free to be resubmitted to the ForkJoinPool
without reinitialization.

Also adds the ability to use fork() when the currentThread is a worker thread of the pool that we want to execute on.

Adds a JMH benchmark for both the ping-pong performance and pipelined throughput.

Conflicts:
	project/AkkaBuild.scala
2014-10-29 15:04:48 +01:00
Patrik Nordwall
e5cd47279d =con Harden ClusterShardingSpec some more
* Replace sleep with awaitAssert
* Use separate probes for awaitAssert checks to avoid spill-over
  to the testActor
* Some additional cleanup
* Deliver buffered messages when HostShard is received
  Test failures showed that initial messages could be re-ordered otherwise
2014-08-28 08:32:16 +02:00
Viktor Klang
945fde4294 +act - #15501 - Adding support for a Non-blocking, bounded, MPMC mailbox called 'NonBlockingBoundedMailbox' 2014-08-08 14:20:39 +02:00
Roland Kuhn
ac5f4fc72e Merge pull request #2050 from drexin/wip-3246-priority-mailbox-drexin
+act #3246 Added control aware mailbox types
2014-03-11 19:36:04 +01:00
Dario Rexin
c3950a7525 +act #3246 Added control aware mailbox types 2014-03-11 17:03:05 +01:00
dario.rexin
2cbad298d6 =all #3858 Make case classes final 2014-03-07 13:20:01 +01:00
Adam Voss
cce29dfa51 Changes all occurances of Typesafe copyright to extend to 2014. 2014-02-04 21:20:09 -06:00
Patrik Nordwall
d7aab50da0 !act #2927 Add BalancingPool and deprecate BalancingDispatcher 2014-01-16 19:06:42 +01:00
Patrik Nordwall
e441d1b29b !pro #3809 Update to config 1.2.0
* Changed all duration reads to use implicit conversion
  and the new getDuration to reduce boilerplate
2014-01-15 19:26:47 +01:00
Roland
20eb28a03c move deadLetterMailbox into Mailboxes and fix review comments, see #3342 2013-06-03 11:41:11 +02:00
Roland
f317aaf711 rewrite mailbox selection logic, see #3342
- add “mailbox-requirement” key to dispatcher section
- split out mailbox section, add akka.actor.default-mailbox
- rewrite findMarker method and use it for Props.create() and getting
  the required mailbox of an actor
- add ProducesMessageQueue trait for MailboxType so that requirements
  can be checked before trying to create the actor for real
- verify actor as well as dispatcher requirements for message queue
  before creation, even in remote-deployed case
- change MessageDispatcher constructor to take a Configurator, add that
  to migration guide
2013-06-02 12:32:04 +02:00
Viktor Klang
6aab7b8705 #3340 - Adding support for 0ms push timeout for blocking mailboxes 2013-05-16 18:07:33 +02:00
Björn Antonsson
9fd42c7cab Fail actor creation if mailbox doesn't conform to required type. See #3237 2013-04-26 09:31:23 +02:00
Björn Antonsson
c3eed374f1 Allow different types of mailboxes on the same dispatcher. See #2687 2013-04-19 13:42:58 +02:00
Viktor Klang (√)
e01e629ff9 Merge pull request #1283 from akka/wip-mpsc-√
Wip mpsc √
2013-04-03 13:34:33 -07:00
Viktor Klang (√)
641e499cc4 Merge pull request #1287 from akka/wip-2970-lightweight-ec-form-promiseactorref-√
#2970 - Removing scheduler and dispatcher from ARP and reimplementing P...
2013-04-03 11:23:54 -07:00
Viktor Klang
cb5c17dd7f Merged with master 2013-04-03 20:22:04 +02:00
Viktor Klang
68dfada8bc Moving in isEmpty and count into AbstractNodeQueue 2013-04-03 20:05:20 +02:00
Viktor Klang
fcfe7b4617 #2970 - Removing scheduler and dispatcher from ARP and reimplementing PromiseActorRef to use an internal calling thread EC 2013-04-03 19:12:03 +02:00
Viktor Klang
6976317bc7 Merged with master 2013-04-03 16:21:22 +02:00
Viktor Klang
f7e0cdad9f Merge with master 2013-03-29 01:50:43 +01:00
Viktor Klang
3ab3de1eb6 Making SerializedSuspendableExecutionContext use AbstractNodeQueue instead of ConcurrentLinkedQueue 2013-03-29 01:50:00 +01:00
Viktor Klang
c883705242 #3018 - Enabling -Xlint and dealing with the situation that occurs 2013-03-29 01:43:17 +01:00
Björn Antonsson
eb32fc9c24 Return of the DefaultSystemMessageQueue fixes. See #3170 2013-03-27 12:00:02 +01:00
Endre Sándor Varga
f8c3717ca1 Changed Failed to be a SystemMessage
- Moved system messages to their own package.
 - All queueing operations are now hidden behind a SystemMessageList value class
 - Introduced dual SystemMessageList types to encode the ordering in the type.
   - Protects against accidentally missed reverse calls or accidentally reversed lists
   - Makes ordering expectations by fields/parameters explicit
 - Fixed serialization tests
 - Fixes to logging in HierarchyStressSpec
2013-03-22 12:02:31 +01:00
Viktor Klang
fb2decbcda Adding high-performance MPSC queue based mailbox to Akka 2013-03-14 14:37:57 +01:00
Björn Antonsson
ccdee92961 Back off if another thread has processed all messages for this actor. See #3064 2013-03-06 14:05:04 +01:00
Nicholas Schultz-Møller
eb1bbcff87 Fix of typo and other misc. formatting. 2013-02-18 10:29:01 +01:00
Björn Antonsson
392b1ebef3 Merge pull request #1113 from akka/wip-3006-handle-interruption-in-the-dungeon-ban
Catch InterruptedException in the dungeon and mark the thread as interrupted. See #3006
2013-02-18 00:05:09 -08:00
Björn Antonsson
fcc6c3047d Check for interruption after message processing. See #3006 2013-02-11 21:06:46 +01:00
Patrik Nordwall
323e5c80b5 Polish the API/SPI of remoting, see #2827
* Changed TransportAdapterProvider to support java impl
* Verified java impl of AbstractTransportAdapter and
  ActorTransportAdapter
* Privatized things that should not be public api
* Consistent usage of INTERNAL API marker in scaladoc
* Added some missing doc in conf
* Added missing SerialVersionUID
2013-02-10 17:47:43 +01:00
Patrik Nordwall
939893ef5f Preserve sender when sending to deadLetters, see #3009 2013-02-04 12:41:58 +01:00
Viktor Klang
adfeb2c1f0 #2879 - updating copyright info 2013-01-09 11:38:00 +01:00
Roland
0f04239f67 move Duration classes according to scala 2.10 nightly and remove casts to FiniteDuration, see #2504 2012-10-11 15:18:10 -07:00
Roland
8211fd6e8f change settings to FiniteDuration where applicable 2012-08-21 09:22:09 +02:00
Björn Antonsson
57ac1da6d1 Fixes from review. See #2385 2012-08-16 22:49:46 +02:00
Björn Antonsson
1aa2319023 InterruptedException changes based on discussion. See #2385 2012-08-16 11:14:35 +02:00
Björn Antonsson
39723fa765 Better handling of interrupted exception. See #2385 2012-08-15 15:17:39 +02:00
Roland
810d65068e test exceptions from actor constructor in hierarchy, see #2336
This has brought to light some interesting effects (aka bugs) both in
the general implementation as well as in previous fixes.
SupervisorHierarchySpec is without TODOs now and GREEN.
2012-08-08 07:48:23 +02:00
Roland
2c9ddeb629 test exceptions during recreation, see #2336
fix two bugs:
- resumeChildren should only check the perpetrator if
  inResponseToFailure is true
- handleInvokeFailure must not suspend the survivors in case of an
  exception in postRestart
2012-08-02 16:59:15 +02:00
Viktor Klang
5a51f7750f Hopefully correcting the FSMTransitionSpec and a ScalaDoc issue with mailbox.scala 2012-07-24 16:09:23 +02:00
Roland
dca8d15c68 Merge branch 'wip-2212-recursive-resume-∂π' into wip-scala210M5-√
only merged so that it compiles, will clean up warnings in the following
commits
2012-07-23 14:17:45 +02:00
Viktor Klang
1261fab3af Removing akka.util.NonFatal and replacing it with scala.util.control.NonFatal 2012-07-22 15:33:18 +02:00
Roland
4bbb1dbcbd rename becomeOpen/becomeSuspended to resume/suspend on Mailbox 2012-07-13 12:25:26 +02:00
Roland
1cb204da49 Merge branch 'master' into wip-2212-recursive-resume-∂π
also split out ChildrenContainer into its own file and add
suspendCounter to UnstartedActorCell
2012-07-05 13:18:19 +02:00
Roland
78a39198f1 another round of fixes due to suspend counting, see #2212
- always suspend/resume for Suspend/Resume/Recreate, no matter which
  state the actor is in, to keep the counter balanced
- preRestart failures are logged but otherwise ignored; there’s nothing
  else (apart from terminating the actor) which we could do at that
  point
- preRestart/postRestart exceptions have their own distinguishable
  subtype of ActorKilledException now
- fix some race conditions in tests to make them produce fewer false
  failures
- remove cruft from SupervisorStrategy and add methods which can
  actually be used to implement your own (with proper warning signs)
2012-07-04 09:20:17 +02:00