@@ -366,9 +366,6 @@ typedef struct {
366
366
* and shutdown methods check for chained exceptions.
367
367
*/
368
368
PyObject * exc ;
369
- /* Lock to synchronize calls when the thread state is detached.
370
- See also gh-134698. */
371
- PyMutex tstate_mutex ;
372
369
} PySSLSocket ;
373
370
374
371
#define PySSLSocket_CAST (op ) ((PySSLSocket *)(op))
@@ -918,7 +915,6 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
918
915
self -> server_hostname = NULL ;
919
916
self -> err = err ;
920
917
self -> exc = NULL ;
921
- self -> tstate_mutex = (PyMutex ){0 };
922
918
923
919
/* Make sure the SSL error state is initialized */
924
920
ERR_clear_error ();
@@ -994,12 +990,12 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
994
990
BIO_set_nbio (SSL_get_wbio (self -> ssl ), 1 );
995
991
}
996
992
997
- PySSL_BEGIN_ALLOW_THREADS ( self )
993
+ Py_BEGIN_ALLOW_THREADS ;
998
994
if (socket_type == PY_SSL_CLIENT )
999
995
SSL_set_connect_state (self -> ssl );
1000
996
else
1001
997
SSL_set_accept_state (self -> ssl );
1002
- PySSL_END_ALLOW_THREADS ( self )
998
+ Py_END_ALLOW_THREADS ;
1003
999
1004
1000
self -> socket_type = socket_type ;
1005
1001
if (sock != NULL ) {
@@ -1068,10 +1064,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)
1068
1064
/* Actually negotiate SSL connection */
1069
1065
/* XXX If SSL_do_handshake() returns 0, it's also a failure. */
1070
1066
do {
1071
- PySSL_BEGIN_ALLOW_THREADS ( self )
1067
+ Py_BEGIN_ALLOW_THREADS
1072
1068
ret = SSL_do_handshake (self -> ssl );
1073
1069
err = _PySSL_errno (ret < 1 , self -> ssl , ret );
1074
- PySSL_END_ALLOW_THREADS (self )
1070
+ Py_END_ALLOW_THREADS ;
1071
+ _PySSL_FIX_ERRNO ;
1075
1072
self -> err = err ;
1076
1073
1077
1074
if (PyErr_CheckSignals ())
@@ -2615,10 +2612,11 @@ _ssl__SSLSocket_sendfile_impl(PySSLSocket *self, int fd, Py_off_t offset,
2615
2612
}
2616
2613
2617
2614
do {
2618
- PySSL_BEGIN_ALLOW_THREADS ( self )
2615
+ Py_BEGIN_ALLOW_THREADS
2619
2616
retval = SSL_sendfile (self -> ssl , fd , (off_t )offset , size , flags );
2620
2617
err = _PySSL_errno (retval < 0 , self -> ssl , (int )retval );
2621
- PySSL_END_ALLOW_THREADS (self )
2618
+ Py_END_ALLOW_THREADS ;
2619
+ _PySSL_FIX_ERRNO ;
2622
2620
self -> err = err ;
2623
2621
2624
2622
if (PyErr_CheckSignals ()) {
@@ -2746,10 +2744,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)
2746
2744
}
2747
2745
2748
2746
do {
2749
- PySSL_BEGIN_ALLOW_THREADS ( self )
2747
+ Py_BEGIN_ALLOW_THREADS ;
2750
2748
retval = SSL_write_ex (self -> ssl , b -> buf , (size_t )b -> len , & count );
2751
2749
err = _PySSL_errno (retval == 0 , self -> ssl , retval );
2752
- PySSL_END_ALLOW_THREADS (self )
2750
+ Py_END_ALLOW_THREADS ;
2751
+ _PySSL_FIX_ERRNO ;
2753
2752
self -> err = err ;
2754
2753
2755
2754
if (PyErr_CheckSignals ())
@@ -2807,10 +2806,11 @@ _ssl__SSLSocket_pending_impl(PySSLSocket *self)
2807
2806
int count = 0 ;
2808
2807
_PySSLError err ;
2809
2808
2810
- PySSL_BEGIN_ALLOW_THREADS ( self )
2809
+ Py_BEGIN_ALLOW_THREADS ;
2811
2810
count = SSL_pending (self -> ssl );
2812
2811
err = _PySSL_errno (count < 0 , self -> ssl , count );
2813
- PySSL_END_ALLOW_THREADS (self )
2812
+ Py_END_ALLOW_THREADS ;
2813
+ _PySSL_FIX_ERRNO ;
2814
2814
self -> err = err ;
2815
2815
2816
2816
if (count < 0 )
@@ -2901,10 +2901,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len,
2901
2901
deadline = _PyDeadline_Init (timeout );
2902
2902
2903
2903
do {
2904
- PySSL_BEGIN_ALLOW_THREADS ( self )
2904
+ Py_BEGIN_ALLOW_THREADS ;
2905
2905
retval = SSL_read_ex (self -> ssl , mem , (size_t )len , & count );
2906
2906
err = _PySSL_errno (retval == 0 , self -> ssl , retval );
2907
- PySSL_END_ALLOW_THREADS (self )
2907
+ Py_END_ALLOW_THREADS ;
2908
+ _PySSL_FIX_ERRNO ;
2908
2909
self -> err = err ;
2909
2910
2910
2911
if (PyErr_CheckSignals ())
@@ -3003,7 +3004,7 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
3003
3004
}
3004
3005
3005
3006
while (1 ) {
3006
- PySSL_BEGIN_ALLOW_THREADS ( self )
3007
+ Py_BEGIN_ALLOW_THREADS ;
3007
3008
/* Disable read-ahead so that unwrap can work correctly.
3008
3009
* Otherwise OpenSSL might read in too much data,
3009
3010
* eating clear text data that happens to be
@@ -3016,7 +3017,8 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
3016
3017
SSL_set_read_ahead (self -> ssl , 0 );
3017
3018
ret = SSL_shutdown (self -> ssl );
3018
3019
err = _PySSL_errno (ret < 0 , self -> ssl , ret );
3019
- PySSL_END_ALLOW_THREADS (self )
3020
+ Py_END_ALLOW_THREADS ;
3021
+ _PySSL_FIX_ERRNO ;
3020
3022
self -> err = err ;
3021
3023
3022
3024
/* If err == 1, a secure shutdown with SSL_shutdown() is complete */
0 commit comments