Skip site navigation (1)Skip section navigation (2)
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>