@@ -213,7 +213,10 @@ STATIC int wiznet5k_socket_connect(mod_network_socket_obj_t *socket, byte *ip, m
213213 }
214214
215215 // now connect
216+ MP_THREAD_GIL_EXIT ();
216217 mp_int_t ret = WIZCHIP_EXPORT (connect )(socket -> u_param .fileno , ip , port );
218+ MP_THREAD_GIL_ENTER ();
219+
217220 if (ret < 0 ) {
218221 wiznet5k_socket_close (socket );
219222 * _errno = - ret ;
@@ -225,7 +228,10 @@ STATIC int wiznet5k_socket_connect(mod_network_socket_obj_t *socket, byte *ip, m
225228}
226229
227230STATIC mp_uint_t wiznet5k_socket_send (mod_network_socket_obj_t * socket , const byte * buf , mp_uint_t len , int * _errno ) {
231+ MP_THREAD_GIL_EXIT ();
228232 mp_int_t ret = WIZCHIP_EXPORT (send )(socket -> u_param .fileno , (byte * )buf , len );
233+ MP_THREAD_GIL_ENTER ();
234+
229235 // TODO convert Wiz errno's to POSIX ones
230236 if (ret < 0 ) {
231237 wiznet5k_socket_close (socket );
@@ -236,7 +242,10 @@ STATIC mp_uint_t wiznet5k_socket_send(mod_network_socket_obj_t *socket, const by
236242}
237243
238244STATIC mp_uint_t wiznet5k_socket_recv (mod_network_socket_obj_t * socket , byte * buf , mp_uint_t len , int * _errno ) {
245+ MP_THREAD_GIL_EXIT ();
239246 mp_int_t ret = WIZCHIP_EXPORT (recv )(socket -> u_param .fileno , buf , len );
247+ MP_THREAD_GIL_ENTER ();
248+
240249 // TODO convert Wiz errno's to POSIX ones
241250 if (ret < 0 ) {
242251 wiznet5k_socket_close (socket );
@@ -254,7 +263,10 @@ STATIC mp_uint_t wiznet5k_socket_sendto(mod_network_socket_obj_t *socket, const
254263 }
255264 }
256265
266+ MP_THREAD_GIL_EXIT ();
257267 mp_int_t ret = WIZCHIP_EXPORT (sendto )(socket -> u_param .fileno , (byte * )buf , len , ip , port );
268+ MP_THREAD_GIL_ENTER ();
269+
258270 if (ret < 0 ) {
259271 wiznet5k_socket_close (socket );
260272 * _errno = - ret ;
@@ -265,7 +277,9 @@ STATIC mp_uint_t wiznet5k_socket_sendto(mod_network_socket_obj_t *socket, const
265277
266278STATIC mp_uint_t wiznet5k_socket_recvfrom (mod_network_socket_obj_t * socket , byte * buf , mp_uint_t len , byte * ip , mp_uint_t * port , int * _errno ) {
267279 uint16_t port2 ;
280+ MP_THREAD_GIL_EXIT ();
268281 mp_int_t ret = WIZCHIP_EXPORT (recvfrom )(socket -> u_param .fileno , buf , len , ip , & port2 );
282+ MP_THREAD_GIL_ENTER ();
269283 * port = port2 ;
270284 if (ret < 0 ) {
271285 wiznet5k_socket_close (socket );
0 commit comments