Date: Sat, 22 Jul 2000 00:39:18 +0800 From: "Tan Juay Kwang" <tanjk@i-dns.net> To: "Richard Seaman, Jr." <dick@tar.com> Cc: <freebsd-questions@FreeBSD.ORG> Subject: RE: pthreads on 4.0-STABLE Message-ID: <NEBBLKHLGDECFCNMHPEEOEAMCPAA.tanjk@i-dns.net> In-Reply-To: <20000720162831.B404@tar.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. ------=_NextPart_000_001B_01BFF375.45277440 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit > > AFAIK, FreeBSD's implementation of gethostbyname is not thread safe, > though I haven't studied it in detail, so its possible I'm wrong. > What happens if you wrap your calls to gethostbyname() with a mutex? > Does it work then? > I'm not tried this approach but even if it does work, it will means that my gethostbyname are done serially, which is not what I really want. > In general, the specs I've seen (eg SUSv2) also stipulate that > even if gethostbyname is "thread safe" it can return a pointer > to a static data structure. So, if you're going to use it in > multiple threads, and you want to be portable, you really need > to wrap gethostbyname() in a mutex even if its "thread safe" so > you use the returned pointer before releasing the mutex. Otherwise > some other thread can stomp on the static structure before you > use it. > I see. Well, I guess the best thing I can do is to send out DNS packet myself then, without going through kernel services. > Ideally, a threads package will provide gethostbyname_r, where you > pass a buffer for the result so you can avoid having to wrap the > call in a mutex. Unfortunately, I don't see this call in the > FreeBSD user threads package. Such a call does exist in linuxthreads > (as well as the FreeBSD linuxthreads port -- > see /usr/ports/devel/linuxthreads). > > Right, will definitely check out the port, thanks. Best regards, Juay Kwang ------=_NextPart_000_001B_01BFF375.45277440 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIHKjCCAy4w ggKXoAMCAQICEQDSdi6NFAw9fbKoJV2v7g11MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05ODA1MTIwMDAwMDBaFw0wODA1MTIyMzU5NTla MIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0 d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIEJ5 IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJbmRpdmlk dWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkMIGfMA0GCSqGSIb3DQEBAQUAA4GN ADCBiQKBgQC7WkSKBBa7Vf0DeootlE8VeDa4DUqyb5xUv7zodyqdufBou5XZMUFweoFLuUgTVi3H COGEQqvAopKrRFyqQvCCDgLpL/vCO7u+yScKXbawNkIztW5UiE+HSr8Z2vkV6A+HthzjzMaajn9q JJLj/OBluqexfu/J2zdqyErICQbkmQIDAQABo3wwejARBglghkgBhvhCAQEEBAMCAQYwRwYDVR0g BEAwPjA8BgtghkgBhvhFAQcBATAtMCsGCCsGAQUFBwIBFh93d3cudmVyaXNpZ24uY29tL3JlcG9z aXRvcnkvUlBBMA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBAgUAA4GB AIi4Nzvd2pQ3AK2qn+GBAXEekmptL/bxndPKZDjcG5gMB4ZbhRVqD7lJhaSV8Rd9Z7R/LSzdmkKe wz60jqrlCwbe8lYq+jPHvhnXU0zDvcjjF7WkSUJj7MKmFw9dWBpJPJBcVaNlIAD9GCDlX4KmsaiS xVhqwY0DPOvDzQWikK5uMIID9DCCA12gAwIBAgIQF/MjDYJPRn81g30kCzsRtzANBgkqhkiG9w0B AQQFADCBzDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3Jw LiBCeSBSZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWduIENsYXNzIDEgQ0EgSW5k aXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZDAeFw0wMDA2MjgwMDAwMDBa Fw0wMDA4MjcyMzU5NTlaMIIBAzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl cmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9y eS9SUEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90 IFZhbGlkYXRlZDEmMCQGA1UECxMdRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUxFzAVBgNV BAMUDkp1YXkgS3dhbmcgVGFuMR4wHAYJKoZIhvcNAQkBFg90YW5qa0BpLWRucy5uZXQwgZ8wDQYJ KoZIhvcNAQEBBQADgY0AMIGJAoGBANW3TvjbDwH/jV4bol+FogFJ2cXuX2yFvQVYBvcL/wB4jNhS oB9fIba+wt/o41hHtF0pMtjL0CHPY7mnT9DcTNHxC8TeHjnzShxLqgAaf1eBJdKr0dSm4gaxmU7b CBY03Lfce+gsHhxNclXObUSOWnG/h6Rmvb1r+Uh8ByWZZx/JAgMBAAGjgZwwgZkwCQYDVR0TBAIw ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEIMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl cmlzaWduLmNvbS9ycGEwEQYJYIZIAYb4QgEBBAQDAgeAMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6 Ly9jcmwudmVyaXNpZ24uY29tL2NsYXNzMS5jcmwwDQYJKoZIhvcNAQEEBQADgYEARo2tBDBXqDl5 hlgARNC6NEC/ooWcfKpG/RsfUEbmNqBsokHtUl4qwgymzabniB+h/zY8ib5VlVkpk09xIjd/cjJO nkbVd4Txl3q6jplkvWFftTIZ/04T1opGap8haVGhdCSETDwaFT73MPUJtZrMDBzMGR1KSAarneh6 PRyXUzMxggM4MIIDNAIBATCB4TCBzDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsT FlZlcmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3Np dG9yeS9SUEEgSW5jb3JwLiBCeSBSZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWdu IENsYXNzIDEgQ0EgSW5kaXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZAIQ F/MjDYJPRn81g30kCzsRtzAJBgUrDgMCGgUAoIIBrDAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB MBwGCSqGSIb3DQEJBTEPFw0wMDA3MjExNjM5MThaMCMGCSqGSIb3DQEJBDEWBBSm342mvoDiPMlw L1TlMGiE2vNfAjBYBgkqhkiG9w0BCQ8xSzBJMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDAH BgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG9w0CBTCB8gYJKwYBBAGCNxAE MYHkMIHhMIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNv cnAuIEJ5IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJ bmRpdmlkdWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkAhAX8yMNgk9GfzWDfSQL OxG3MA0GCSqGSIb3DQEBAQUABIGAcXRVIw1lM6R+TE+XcHpxKpwSVt2weOTKDJJUtkvjh9AyU2n6 z04lwZPC0u8jnI+yapoS/vS2t4ds99z0QfnpyGz8xIEEkP3fkuXdGCNH/7jzrVyKA853DR4kj3Jz LtrjIGseMb8pzHmHDCJlztEqF9DPV5JzZnQNiOD+F8ucYpEAAAAAAAA= ------=_NextPart_000_001B_01BFF375.45277440-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NEBBLKHLGDECFCNMHPEEOEAMCPAA.tanjk>