@@ -339,9 +339,6 @@ typedef struct {
339339 * and shutdown methods check for chained exceptions.
340340 */
341341 PyObject * exc ;
342- /* Lock to synchronize calls when the thread state is detached.
343- See also gh-134698. */
344- PyMutex tstate_mutex ;
345342} PySSLSocket ;
346343
347344#define PySSLSocket_CAST (op ) ((PySSLSocket *)(op))
@@ -891,7 +888,6 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
891888 self -> server_hostname = NULL ;
892889 self -> err = err ;
893890 self -> exc = NULL ;
894- self -> tstate_mutex = (PyMutex ){0 };
895891
896892 /* Make sure the SSL error state is initialized */
897893 ERR_clear_error ();
@@ -967,12 +963,12 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
967963 BIO_set_nbio (SSL_get_wbio (self -> ssl ), 1 );
968964 }
969965
970- PySSL_BEGIN_ALLOW_THREADS ( self )
966+ Py_BEGIN_ALLOW_THREADS ;
971967 if (socket_type == PY_SSL_CLIENT )
972968 SSL_set_connect_state (self -> ssl );
973969 else
974970 SSL_set_accept_state (self -> ssl );
975- PySSL_END_ALLOW_THREADS ( self )
971+ Py_END_ALLOW_THREADS ;
976972
977973 self -> socket_type = socket_type ;
978974 if (sock != NULL ) {
@@ -1041,10 +1037,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)
10411037 /* Actually negotiate SSL connection */
10421038 /* XXX If SSL_do_handshake() returns 0, it's also a failure. */
10431039 do {
1044- PySSL_BEGIN_ALLOW_THREADS ( self )
1040+ Py_BEGIN_ALLOW_THREADS
10451041 ret = SSL_do_handshake (self -> ssl );
10461042 err = _PySSL_errno (ret < 1 , self -> ssl , ret );
1047- PySSL_END_ALLOW_THREADS (self )
1043+ Py_END_ALLOW_THREADS ;
1044+ _PySSL_FIX_ERRNO ;
10481045 self -> err = err ;
10491046
10501047 if (PyErr_CheckSignals ())
@@ -2514,10 +2511,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)
25142511 }
25152512
25162513 do {
2517- PySSL_BEGIN_ALLOW_THREADS ( self )
2514+ Py_BEGIN_ALLOW_THREADS ;
25182515 retval = SSL_write_ex (self -> ssl , b -> buf , (size_t )b -> len , & count );
25192516 err = _PySSL_errno (retval == 0 , self -> ssl , retval );
2520- PySSL_END_ALLOW_THREADS (self )
2517+ Py_END_ALLOW_THREADS ;
2518+ _PySSL_FIX_ERRNO ;
25212519 self -> err = err ;
25222520
25232521 if (PyErr_CheckSignals ())
@@ -2575,10 +2573,11 @@ _ssl__SSLSocket_pending_impl(PySSLSocket *self)
25752573 int count = 0 ;
25762574 _PySSLError err ;
25772575
2578- PySSL_BEGIN_ALLOW_THREADS ( self )
2576+ Py_BEGIN_ALLOW_THREADS ;
25792577 count = SSL_pending (self -> ssl );
25802578 err = _PySSL_errno (count < 0 , self -> ssl , count );
2581- PySSL_END_ALLOW_THREADS (self )
2579+ Py_END_ALLOW_THREADS ;
2580+ _PySSL_FIX_ERRNO ;
25822581 self -> err = err ;
25832582
25842583 if (count < 0 )
@@ -2669,10 +2668,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len,
26692668 deadline = _PyDeadline_Init (timeout );
26702669
26712670 do {
2672- PySSL_BEGIN_ALLOW_THREADS ( self )
2671+ Py_BEGIN_ALLOW_THREADS ;
26732672 retval = SSL_read_ex (self -> ssl , mem , (size_t )len , & count );
26742673 err = _PySSL_errno (retval == 0 , self -> ssl , retval );
2675- PySSL_END_ALLOW_THREADS (self )
2674+ Py_END_ALLOW_THREADS ;
2675+ _PySSL_FIX_ERRNO ;
26762676 self -> err = err ;
26772677
26782678 if (PyErr_CheckSignals ())
@@ -2771,7 +2771,7 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
27712771 }
27722772
27732773 while (1 ) {
2774- PySSL_BEGIN_ALLOW_THREADS ( self )
2774+ Py_BEGIN_ALLOW_THREADS ;
27752775 /* Disable read-ahead so that unwrap can work correctly.
27762776 * Otherwise OpenSSL might read in too much data,
27772777 * eating clear text data that happens to be
@@ -2784,7 +2784,8 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
27842784 SSL_set_read_ahead (self -> ssl , 0 );
27852785 ret = SSL_shutdown (self -> ssl );
27862786 err = _PySSL_errno (ret < 0 , self -> ssl , ret );
2787- PySSL_END_ALLOW_THREADS (self )
2787+ Py_END_ALLOW_THREADS ;
2788+ _PySSL_FIX_ERRNO ;
27882789 self -> err = err ;
27892790
27902791 /* If err == 1, a secure shutdown with SSL_shutdown() is complete */
0 commit comments