diff --git a/Misc/NEWS b/Misc/NEWS index 93c2ba0c495..00bd2471de6 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -149,6 +149,9 @@ present). Extension Modules ----------------- +- Patch #1288833: Removed thread lock from socket.getaddrinfo on + FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3). + - Patches #1298449 and #1298499: Add some missing checks for error returns in cStringIO.c. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 4c0a0fcf5d5..e3573e37d15 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -140,9 +140,14 @@ shutdown(how) -- shut down traffic in one or both directions\n\ # define USE_GETHOSTBYNAME_LOCK #endif +/* To use __FreeBSD_version */ +#ifdef HAVE_SYS_PARAM_H +#include +#endif /* On systems on which getaddrinfo() is believed to not be thread-safe, (this includes the getaddrinfo emulation) protect access with a lock. */ -#if defined(WITH_THREAD) && (defined(__APPLE__) || defined(__FreeBSD__) || \ +#if defined(WITH_THREAD) && (defined(__APPLE__) || \ + (defined(__FreeBSD__) && __FreeBSD_version+0 < 503000) || \ defined(__OpenBSD__) || defined(__NetBSD__) || !defined(HAVE_GETADDRINFO)) #define USE_GETADDRINFO_LOCK #endif