@@ -213,7 +213,10 @@ STATIC int wiznet5k_socket_connect(mod_network_socket_obj_t *socket, byte *ip, m
213
213
}
214
214
215
215
// now connect
216
+ MP_THREAD_GIL_EXIT ();
216
217
mp_int_t ret = WIZCHIP_EXPORT (connect )(socket -> u_param .fileno , ip , port );
218
+ MP_THREAD_GIL_ENTER ();
219
+
217
220
if (ret < 0 ) {
218
221
wiznet5k_socket_close (socket );
219
222
* _errno = - ret ;
@@ -225,7 +228,10 @@ STATIC int wiznet5k_socket_connect(mod_network_socket_obj_t *socket, byte *ip, m
225
228
}
226
229
227
230
STATIC 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 ();
228
232
mp_int_t ret = WIZCHIP_EXPORT (send )(socket -> u_param .fileno , (byte * )buf , len );
233
+ MP_THREAD_GIL_ENTER ();
234
+
229
235
// TODO convert Wiz errno's to POSIX ones
230
236
if (ret < 0 ) {
231
237
wiznet5k_socket_close (socket );
@@ -236,7 +242,10 @@ STATIC mp_uint_t wiznet5k_socket_send(mod_network_socket_obj_t *socket, const by
236
242
}
237
243
238
244
STATIC 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 ();
239
246
mp_int_t ret = WIZCHIP_EXPORT (recv )(socket -> u_param .fileno , buf , len );
247
+ MP_THREAD_GIL_ENTER ();
248
+
240
249
// TODO convert Wiz errno's to POSIX ones
241
250
if (ret < 0 ) {
242
251
wiznet5k_socket_close (socket );
@@ -254,7 +263,10 @@ STATIC mp_uint_t wiznet5k_socket_sendto(mod_network_socket_obj_t *socket, const
254
263
}
255
264
}
256
265
266
+ MP_THREAD_GIL_EXIT ();
257
267
mp_int_t ret = WIZCHIP_EXPORT (sendto )(socket -> u_param .fileno , (byte * )buf , len , ip , port );
268
+ MP_THREAD_GIL_ENTER ();
269
+
258
270
if (ret < 0 ) {
259
271
wiznet5k_socket_close (socket );
260
272
* _errno = - ret ;
@@ -265,7 +277,9 @@ STATIC mp_uint_t wiznet5k_socket_sendto(mod_network_socket_obj_t *socket, const
265
277
266
278
STATIC 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 ) {
267
279
uint16_t port2 ;
280
+ MP_THREAD_GIL_EXIT ();
268
281
mp_int_t ret = WIZCHIP_EXPORT (recvfrom )(socket -> u_param .fileno , buf , len , ip , & port2 );
282
+ MP_THREAD_GIL_ENTER ();
269
283
* port = port2 ;
270
284
if (ret < 0 ) {
271
285
wiznet5k_socket_close (socket );
0 commit comments