From 854aa0f42ed07b2d9850a39c9fc2382f80087d6c Mon Sep 17 00:00:00 2001 From: taras Date: Fri, 30 Jan 2026 00:03:33 +0100 Subject: [PATCH] Optimize SSLObject.read call --- uvloop/sslproto.pxd | 1 + uvloop/sslproto.pyx | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/uvloop/sslproto.pxd b/uvloop/sslproto.pxd index 3da10f00..ea62fa0e 100644 --- a/uvloop/sslproto.pxd +++ b/uvloop/sslproto.pxd @@ -57,6 +57,7 @@ cdef class SSLProtocol: object _incoming_write object _outgoing object _outgoing_read + object _ssl_read_max_size_obj char* _ssl_buffer size_t _ssl_buffer_len object _ssl_buffer_view diff --git a/uvloop/sslproto.pyx b/uvloop/sslproto.pyx index 42bb7644..786d38b5 100644 --- a/uvloop/sslproto.pyx +++ b/uvloop/sslproto.pyx @@ -200,6 +200,7 @@ cdef class SSLProtocol: """ def __cinit__(self, *args, **kwargs): + self._ssl_read_max_size_obj = SSL_READ_MAX_SIZE self._ssl_buffer_len = SSL_READ_MAX_SIZE self._ssl_buffer = PyMem_RawMalloc(self._ssl_buffer_len) if not self._ssl_buffer: @@ -587,7 +588,7 @@ cdef class SSLProtocol: bint close_notify = False try: while True: - if not self._sslobj_read(SSL_READ_MAX_SIZE): + if not self._sslobj_read(self._ssl_read_max_size_obj): close_notify = True break except ssl_SSLAgainErrors as exc: @@ -773,7 +774,7 @@ cdef class SSLProtocol: try: while True: - chunk = self._sslobj_read(SSL_READ_MAX_SIZE) + chunk = self._sslobj_read(self._ssl_read_max_size_obj) if not chunk: break if zero: