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 <[email protected]>: > 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 <[email protected]>: > >> 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 >> >> >
