You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2020/12/02 11:04:55 UTC
[httpcomponents-core] 01/02: Re-use internal event handler to
reduce intermediate garbage
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch 5.0.x
in repository https://gitbox.apache.org/repos/asf/httpcomponents-core.git
commit 11a0e44c6f59f2c1f7ee4e7a39bd2e1aeb3a1ffa
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Wed Dec 2 12:03:10 2020 +0100
Re-use internal event handler to reduce intermediate garbage
---
.../apache/hc/core5/reactor/ssl/SSLIOSession.java | 27 ++++++++++++----------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/reactor/ssl/SSLIOSession.java b/httpcore5/src/main/java/org/apache/hc/core5/reactor/ssl/SSLIOSession.java
index 806794c..fb95dac 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/reactor/ssl/SSLIOSession.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/reactor/ssl/SSLIOSession.java
@@ -85,6 +85,8 @@ public class SSLIOSession implements IOSession {
private final Timeout connectTimeout;
private final SSLMode sslMode;
private final AtomicInteger outboundClosedCount;
+ private final IOEventHandler internalEventHandler;
+
private int appEventMask;
private volatile boolean endOfStream;
@@ -147,17 +149,7 @@ public class SSLIOSession implements IOSession {
this.inPlain = SSLManagedBuffer.create(sslBufferMode, appBufferSize);
this.outboundClosedCount = new AtomicInteger(0);
this.connectTimeout = connectTimeout;
- }
-
- private IOEventHandler ensureHandler() {
- final IOEventHandler handler = session.getHandler();
- Asserts.notNull(handler, "IO event handler");
- return handler;
- }
-
- @Override
- public IOEventHandler getHandler() {
- return new IOEventHandler() {
+ this.internalEventHandler = new IOEventHandler() {
@Override
public void connected(final IOSession protocolSession) throws IOException {
@@ -216,7 +208,18 @@ public class SSLIOSession implements IOSession {
};
}
- private void initialize() throws SSLException {
+ private IOEventHandler ensureHandler() {
+ final IOEventHandler handler = session.getHandler();
+ Asserts.notNull(handler, "IO event handler");
+ return handler;
+ }
+
+ @Override
+ public IOEventHandler getHandler() {
+ return internalEventHandler;
+ }
+
+ private void initialize() throws IOException {
Asserts.check(!this.initialized, "SSL I/O session already initialized");
// Save the initial socketTimeout of the underlying IOSession, to be restored after the handshake is finished