Mark,
On 5/13/25 11:20 AM, Mark Thomas wrote:
All,
This was mentioned briefly before (I think on a BZ issue) but needs a
wider discussion before taking action - if we do anything.
It has been suggested that there isn't much benefit to maintaining the
NIO2 connector and that we could simplify maintenance by removing it
(deprecating in 11.0.x, removing in 12.0.x). The current code structure
would be retained should there ever be an NIO3 or similar that we wanted
to add.
NIO and NIO2 performance is very similar.
The NIO2 code is arguably more complicated. I've always found it harder
to get me head around but that could just be me.
There is the odd bug with NIO2 we haven't been able to track down.
A similar case might be made for dropping NIO and only maintaining NIO2
although, as stated above, I have a preference for NIO over NIO2.
What do folks think?
+1 for NIO2 removal, though I don't have much of a technical voice on
this topic.
I know this proposal actually makes the Tomcat code MORE complicated in
order to support both NIO and this, but ... I would love for Tomcat 13
(?) to drop NIO and go back to BIO with 100% virtual threads.
The speed of progress on VT coming from OpenJDK has been fairly fast.
Evidently, they have already (provisionally) resolved the issue of
synchronized-code pinning VTs to platform threads (they don't in Java
24, I believe), and the remaining issue is that of native code. My sense
is that dipping into native code and getting a platform thread pinned is
okay, since the remaining use-case for native code in Tomcat (minus
applications) is cryptography, which runs pretty quickly and "comes up
for air" all the time.
-chris
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org