Being maybe naive here, but won't this make the handlePacket method blocking now?
Isn't the idea to do work load hand off to other threads which are in the executor? > On 11 Jul 2017, at 00:30, Clebert Suconic <[email protected]> wrote: > > Also: I need some help with this. > > > Actor is defined as Actor<T> > > > Does anyone know a way to define a method similar to this: > > > SomeFactory: > Actor<T> newActor(T type) > > > That is, type of Actor is passed in as argument. This is because I > would like OrderedExecutorFactory to include the new Actor method, and > I couldn't figure out how to do this through a factory. > > On Mon, Jul 10, 2017 at 7:26 PM, Clebert Suconic > <[email protected]> wrote: >> I am replacing the use of an executor on ServerSessionHandler by a new >> class I just wrote (after some deep technical discussion with >> Francesco, to give him the credits).. >> >> ServerSessionHandler is currently creating a new Runnable on every >> call made through the PacketHandler... >> >> this is because: >> >> of this method: >> >> @Override >> public void handlePacket(final Packet packet) { >> channel.confirm(packet); >> callExecutor.execute(() -> internalHandlePacket(packet)); >> } >> >> >> >> The new Actor class is similar to an executor, but it varies on the >> following: >> >> Instead of receiving a Runnable, it receives an argument (or message) >> that is then sent to a listener method: >> >> >> The implementation gets a lot clearer: >> >> >> @Override >> public void handlePacket(final Packet packet) { >> channel.confirm(packet); >> >> // This method will call onMessagePacket through an actor >> packetActor.sendMessage(packet); >> } >> >> >> >> And the method is just called without a new Runnable. >> >> >> >> Here's the PR: https://github.com/apache/activemq-artemis/pull/1395 >> >> >> >> >> -- >> Clebert Suconic > > > > -- > Clebert Suconic
