Mats Wichmann email@example.com writes:
One possibility is that the Linux getaddrinfo() is thread-safe, but only by way of a lock that only allows one request to be outstanding at a time.
The next step should be to get the getaddrinfo() source code from glibc and see what it does. It's open source, hey. :-)
I can dig around a bit, but I have to figure out what I'm looking for.
I think that part is already settled: getaddrinfo, on Linux, is thread-safe.
On the failure platform, are we sure Python is using the native getaddrinfo, not the Python-supplied one?
I think the remaining question is: Even if the GIL is released around getaddrinfo - why is the performance of Jeremy's test script still that bad?