- also fixed some forgotten copy-pasta between peekNode and pollNode
- also added JavaDoc to all methods, explaining which can be used from
what thread
- did not fix the JDK8 improvement of using Unsafe instead of inheriting
from AtomicReference since that inheritance is not a bad thing,
actually
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
* 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
- 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
- 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
* 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
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.