I don't have the code in front of me, but are you saying that the modification of the Write Queue is no longer concurrent? Possibly the Write Queue is a concurrent data structure and the synchronize mechanism is no longer required. It seems odd that someone would remove concurrency from that critical section.
On Thu, Aug 17, 2017 at 11:41 PM, 胡阳 <huyan...@cyou-inc.com> wrote: > Hi guys: > > I read the source code of MINA3.0M2. The style of the code is > very good, the structure is clear, the design is concise and efficient, > especially the use of Selector is unexpected. However, the > enqueueWriteRequest method and the processWrite method in the > AbstractNioSession are somewhat flawed. > > I see the source code in the enqueueWriteRequest method was originally > "synchronized (writeQueue)", but was commented out, personal speculation > may be the author feel that this treatment will affect performance. > > My approach is to use CAS to ensure memory visibility and atomic, see I > see the startSync, finishSync method, feeling that this may be more secure > after some of the performance will not lose too much. > > A little personal humble opinion. >