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

Reply via email to