Dear all, Hope you are doing well.

Please kindly advise if the problem I found is on processing. Any
informations , please feel free to let me know.



2017-01-13 9:12 GMT+08:00 Xu Congyuan <xcongy...@gmail.com>:

> Thanks for reply. Sorry for not clear it.
> Basically, we will get the number of idleWorkers 0 or more than 0,
> if idleWorkers = 0, that's meaning no work is idle, we should add workers
> if it's necessary;
> if idleWorkers > 0 , that's meaning there are idle works, no necessary to
> add workers.
> Do I get the point?
> Let's back to the original,  while the MINA starting. At this time, the
> num of idleWorker == 0, therefor we call addWorkerIfNecessary() method when
> task is coming, because of idleWorker == 0,  we do addWorker and increase
> the num of idle at line 259 (version 2.0.16). so idleWorker == 1 at this
> time, the first worker be fired and start running, we enter the infinite
> loop, and decrease the num of idleWorker to 0 at line 686(version 2.0.16),
> basically that's we expected, but there is exception throw by runTasks(),
> the finally code is executed at line 707,  and increase the idleWorker to 1
> again, the infinite 'for' loop drop out because we don't catch the
> exception, the outer try...finally code executed at line 712 removed the
> worker.
> Let's sort out ideas, by now,  the idleWorker == 1 and there is no worker
> is running, is right? so the mina fall into fake dead.
>
> Please let me know I did the right investigation.
>
>
> 2017-01-13 0:11 GMT+08:00 Emmanuel Lécharny <elecha...@gmail.com>:
>
>> Hi !
>>
>>
>> sorry for the delayed response, was busy...
>>
>>
>> I'm not sure I understand : if you get an exception in the runTasks()
>> call, the 'finally' code is executed, and the number of idle worker is
>> incremented, no matter what...
>>
>>
>> Can you check that ?
>>
>> --
>>
>> Emmanuel Lecharny
>>
>> Symas.com
>> directory.apache.org
>>
>>
>

Reply via email to