-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
getaddrinfo is thread-safe on NetBSD and OpenBSD #70594
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
In socketmodule.c we lock around getaddrinfo calls on platforms where getaddrinfo is believed not to be thread-safe. We've verified that it *is* thread-safe, and therefore stopped locking around it, on FreeBSD 5.3+ (bpo-1288833) and Mac OS X 10.5+ (bpo-25924). This ticket intends to do the same for OpenBSD and NetBSD. OpenBSD 5.4 fixed getaddrinfo's thread safety and announced it 2013-11-01, "getaddrinfo(3) is now thread-safe": http://www.openbsd.org/plus54.html NetBSD's fix is older and less publicized. Since ancient times NetBSD's getaddrinfo.c included a comment, "Thread safe-ness must be checked", and the getaddrinfo(3) man page had the same warning as other BSDs, "The implementation of getaddrinfo is not thread-safe." On 2004-05-27 Christos Zoulas committed with the comment "make yp stuff re-entrant", fixing obvious problems like static variables in getaddrinfo: That change was released with NetBSD 3.0, and that alone might convince us to stop locking around getaddrinfo. Later, on 2006-07-18, between NetBSD 3 and 4, Zoulas deleted the comment "Thread safe-ness must be checked" from the source, with the message "Remove comments that do not reflect reality anymore": The same day, he removed the man page warning: NetBSD 4.0 was released 2007-12-19. |
Patch uploaded. I've copied the "nosy" list from bpo-25924, if that was bad etiquette please forgive me. |
New changeset 52a8c1965750 by Ned Deily in branch '2.7': New changeset 419d20551d26 by Ned Deily in branch '3.5': New changeset 5ffebeb3e91d by Ned Deily in branch 'default': |
Thanks for the additional patch, Jesse. Since we don't have a NetBSD buildbot and I don't have any NetBSD or OpenBSD systems at hand to do any testing, I'll take your word for the version checks. If anyone runs into any problems because of these changes, feel free to re-open this issue. Pushed for release in 2.7.12, 3.5.2, and 3.6.0. |
Thank you! |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: